Tabla de Contenidos
En JTable er en klasse, der bruges i Java til at skabe interaktive tabeller, der kan redigeres af brugere takket være Swing API-komponenterne i det programmeringssprog. Det består grundlæggende af en grafisk grænseflade, der giver dig mulighed for at repræsentere data i form af en tabel, så du kan se og interagere med de data, der vises af GUI’en på forskellige måder, herunder blandt andet redigering af tabellernes indhold, ændring dimensionerne af kolonnerne og rækkerne, sortering af de forskellige kolonner efter behag.
Oprettelse af en simpel JTable
Dette eksempel søger at bygge en simpel tabel med følgende oplysninger:
Fornavn | Efternavn | Køn | Alder |
Adriana | Hold op | F | enogtyve |
Juan | blæksprutte | m | 40 |
rosalia | bernard | F | 67 |
Juliana | perez | F | 36 |
Israel | gonzalez | m | 36 |
Denne tabel vil blive vist i et vindue med en rullepanel. Når vi bruger en JTable til at præsentere data i tabelform, skal vi tage højde for, at JTable kun er den grafiske grænseflade, og den indeholder ikke de data, der skal præsenteres. Disse data skal indgå i modelklassen. Med andre ord, for at vores tabel skal kunne vise nogen data, skal vi først instansiere en datamodel og derefter sende denne model til JTable ved hjælp af konstruktøren.
Oprettelse af en ramme
Vi skal tage højde for, at JTable har brug for en ramme, som den kan vises i, så denne skal oprettes først, og indeholde information som position og dimensioner af rammen, samt angive om rammen skal vises eller ej .
En generisk kode for at opnå dette ville være:
public class JTable_Use {
Offentlig statisk void main(String[] args) {
JFrame myframe=ny TableFrame() ;
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
myframe.setVisible(true) ;
}
}
klasse TableFrame udvider JFrame {
public TableFrame() {
setTitle(“Brugerdata” );
setBounds(200,200,700,500);
}
}
Ovenstående kode skaber en synlig ramme placeret ved position 200×200 og med dimensioner 700×500 med titlen Brugerdata.
Nu vil vi oprette en tabel, der vil indeholde data om brugere. Disse data vil i forbindelse med dette eksempel omfatte fornavn, efternavn, køn og alder.
Der er flere konstruktører, som vi kan bruge til at tilføje dataene til den tabel, vi opretter. En af de enkleste konstruktører tillader at tage to dataarrays som argumenter:
JTable(Objekt[] [] rækkedata, Objekt[] kolonnenavne)
Som du kan se, er dette en simpel konstruktør til JTable , der tager som argument en første parameter, der er en todimensional matrix af typen Objekt , hvori dataene svarende til hver række vil blive inkluderet ( rowData ), og en anden parameter, der også det er et array men med én dimension, også af typen Object , hvori overskrifterne eller navnene på kolonnerne ( columnName ) vil blive inkluderet.
Kort sagt, hvis vi vil bruge denne konstruktør, skal vi erklære to arrays , en med to dimensioner og en med en dimension. Det gør vi inde i klassen, der bygger rammerne vist ovenfor.
Vi starter med at erklære det array , der svarer til kolonneoverskrifterne. Da de er tekst, vil de være af typen String . Herunder vil vi erklære det todimensionelle array svarende til de data, der vil blive vist i hver række i tabellen. Array- deklarationen ser sådan ud:
private String [] columnheads={“Fornavn”, “Efternavn”, “Køn”, “Alder”} ;
privat streng [] [] userData={
{“Adriana”, “Stop”, “F”, “21”},
{«John», «Calamaro», «M», «40»},
{«Rosalía», «Bernard», « F « , « 67 « },
{“Juliana”, “Perez”, “F”, “36”},
{“Israel”, “González”, “M”, “36”}
};
I denne kode har vi navngivet arrayet , der indeholder navnene på kolonnerne “cabezadasColumnas” og “dataUsers”, det todimensionelle array , der indeholder data fra de fem brugere, der vil blive inkluderet i tabellen.
Nu hvor vi har de data, som vi ønsker, at JTable skal vise, går vi videre til at bruge konstruktøren til at videregive disse data til JTable . Det gør vi inden for de rammer, vi skabte tidligere. Vi skal give vores tabel et navn, så vi vil kalde det, for dette eksempel, userTable:
JTable tablaUsuarios=ny JTable(dataUsers, headersColumns) ;
Sådan tilføjes rullebjælker og centrering
På dette tidspunkt har vi allerede en JTable , der viser en simpel tabel med 4 kolonner og 6 rækker, som har en første række med kolonneoverskrifterne efterfulgt af 5 rækker med data fra 5 brugere. Denne tabel passer dog muligvis ikke ind i den 700×500-ramme, vi oprettede i begyndelsen, eller hvis den passer nu, kan vi senere tilføje data om flere brugere til den, og den kan i sidste ende ikke passe. I dette tilfælde er det nyttigt at tilføje rullepaneler for at sikre, at alle oplysningerne i tabellen er synlige.
Det gør vi gennem JScrollPane . Derudover er det også praktisk at angive placeringen af vores bord inden for rammen. Til dette bruger vi BorderLayout , som følger:
add(ny JScrollPane(brugertabel), BorderLayout.CENTER) ;
den endelige kode
Efter at have tilføjet alle delene til koden, skulle det se sådan ud:
public class JTable_Use {
public static void main(String[] args) {
JFrame myframe=ny TableFrame() ;
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
myframe.setVisible(true) ;
}
}
klasse TableFrame udvider JFrame {
public TableFrame() {
setTitle(“Brugerdata” );
setBounds(200,200,500,500);
JTable tablaUsuarios=ny JTable(dataUsers, headersColumns) ;
add(ny JScrollPane(brugertabel), BorderLayout.CENTER) ;
}
private String [] columnheads={“Fornavn”, “Efternavn”, “Køn”, “Alder”} ;
privat streng [] [] userData={
{“Adriana”, “Stop”, “F”, “21”},
{«John», «Calamaro», «M», «40»},
{«Rosalía», «Bernard», « F « , « 67 « },
{“Juliana”, “Perez”, “F”, “36”},
{“Israel”, “González”, “M”, “36”}
};
}
Hvordan tilføjer man andre funktioner?
Ud over rullepanelet giver JTable dig mulighed for at tilføje endeløse funktioner til forskellige applikationer. Du kan tilføje muligheden for, at brugeren kan bestille rækkerne efter din smag, du kan ændre tabellens udseende ved at ændre cellernes baggrundsfarver, vise eller ikke vise kanterne, og så videre.
Referencer
Abellán, J. (2007a, 4. februar). Eksempel TableModel applet til JTable. Hentet fra http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php
Abellán, J. (2007b, 4. februar). Eksempel på TableModel i JTable. Hentet fra http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php
Computerpiller [pildorasinformaticas]. (2017, 20. september). java kursus Bilag III. JTabel I. Video 267 [Videofil]. Gendannet fra https://www.youtube.com/watch?v=yH_g6QGFqes
Sensei, J. (2011, 24. januar). Sådan vælger du en række fra en Java JTable. Hentet 13. september 2021 fra http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html