Hur skapar man en ”JTable”-tabell i Java?

Artículo revisado y aprobado por nuestro equipo editorial, siguiendo los criterios de redacción y edición de YuBrain.


En JTable är en klass som används i Java för att skapa interaktiva tabeller som kan redigeras av användare tack vare Swing API-komponenterna i det programmeringsspråket. Det består i grunden av ett grafiskt gränssnitt som låter dig representera data i form av en tabell, så att du kan se och interagera med data som visas av GUI på olika sätt, inklusive bland annat redigera innehållet i tabellerna, modifiera dimensionerna på kolumnerna och raderna, sortera de olika kolumnerna efter behag.

Skapa en enkel JTable

Det här exemplet försöker bygga en enkel tabell med följande information:

Förnamn Efternamn Sex Ålder
Adriana Sluta F tjugoett
Juan bläckfisk m 40
rosalia bernard F 67
Juliana perez F 36
Israel gonzalez m 36

Denna tabell kommer att visas i ett fönster med en rullningslist. När vi använder en JTable för att presentera data i tabellform måste vi ta hänsyn till att JTable endast är det grafiska gränssnittet och den innehåller inte de data som ska presenteras. Dessa data måste ingå i modellklassen. Med andra ord, för att vår tabell ska kunna visa data måste vi först instansiera en datamodell och sedan skicka denna modell till JTable med hjälp av konstruktorn.

Skapar en ram

Vi måste ta hänsyn till att JTable behöver en ram som den kan visas i, så denna måste skapas först, och inkludera information som position och dimensioner för ramen, samt specificera om ramen kommer att visas eller inte .

En generisk kod för att uppnå detta skulle vara:

public class JTable_Use {

                Public static void main(String[] args) {   

                JFrame myframe=new TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

klass TableFrame utökar JFrame {

                public TableFrame() {

                               setTitle(”Användardata”);

                               setBounds(200,200,700,500) ;

                }

}

Ovanstående kod skapar en synlig ram placerad vid position 200×200 och med måtten 700×500 med titeln Användardata.

Nu kommer vi att skapa en tabell som innehåller data om användare. Dessa data kommer att inkludera, för detta exempel, förnamn, efternamn, kön och ålder.

Det finns flera konstruktorer som vi kan använda för att lägga till data i tabellen som vi skapar. En av de enklaste konstruktörerna tillåter att två datamatriser tas som argument:

JTable(Objekt[] [] radData, Objekt[] kolumnnamn)

Som du kan se är detta en enkel konstruktor för JTable som tar som argument en första parameter som är en tvådimensionell array av typen Object i vilken data som motsvarar varje rad kommer att inkluderas ( rowData ), och en andra parameter som också det är en array men med en dimension, också av typen Object , där rubrikerna eller namnen på kolumnerna ( columnName ) kommer att inkluderas.

Kort sagt, om vi vill använda den här konstruktorn måste vi deklarera två arrayer , en med två dimensioner och en med en dimension. Vi gör detta i klassen som bygger ramverket som visas ovan.

Vi börjar med att deklarera arrayen som motsvarar kolumnrubrikerna. Eftersom de är text kommer de att vara av typen String . Nedanför detta kommer vi att deklarera den tvådimensionella matrisen som motsvarar de data som kommer att visas i varje rad i tabellen. Matrisdeklarationen ser ut så här :

                private String [] columnheads={”Förnamn”, ”Efternamn”, ”Sex”, ”Ålder”} ;

                privat sträng [] [] userData={

                               {”Adriana”, ”Stopp”, ”F”, ”21”},

                               {«John», «Calamaro», «M», «40»},

                               {«Rosalía», «Bernard», « F « , « 67 « },

                               {”Juliana”, ”Perez”, ”F”, ”36”},

                               {”Israel”, ”González”, ”M”, ”36”}

                };

I den här koden har vi döpt arrayen som innehåller namnen på kolumnerna ”cabezadasColumnas” och ”dataUsers” till den tvådimensionella arrayen som innehåller data från de fem användare som kommer att inkluderas i tabellen.

Nu när vi har data som vi vill att JTable ska visa, går vi vidare till att använda konstruktorn för att skicka dessa data till JTable . Det gör vi inom de ramar vi skapat tidigare. Vi måste ge vår tabell ett namn, så vi kallar den, för detta exempel, userTable:

JTable tablaUsuarios=ny JTable(dataUsers, headersColumns) ;

Hur man lägger till rullningslister och centrering

Vid det här laget har vi redan en JTable som visar en enkel tabell med 4 kolumner och 6 rader, som har en första rad med kolumnrubriker följt av 5 rader med data från 5 användare. Men den här tabellen kanske inte passar in i ramen på 700×500 vi skapade i början, eller om den passar nu kan vi senare lägga till data om fler användare till den och den kanske inte passar. I det här fallet är det användbart att lägga till rullningslister för att säkerställa att all information i tabellen är synlig.

Vi gör detta genom JScrollPane . Dessutom är det också bekvämt att ange positionen för vårt bord inom ramen. För detta använder vi BorderLayout , enligt följande:

add(new JScrollPane(användartabell), BorderLayout.CENTER) ;

den slutliga koden

Efter att ha lagt till alla delar i koden bör det se ut så här:

public class JTable_Use {

                public static void main(String[] args) {   

                JFrame myframe=new TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

klass TableFrame utökar JFrame {

                public TableFrame() {

                               setTitle(”Användardata”);

                               setBounds(200,200,500,500) ;

                               JTable tablaUsuarios=ny JTable(dataUsers, headersColumns) ;

                               add(new JScrollPane(användartabell), BorderLayout.CENTER) ;

                }

                private String [] columnheads={”Förnamn”, ”Efternamn”, ”Sex”, ”Ålder”} ;

                privat sträng [] [] userData={

                               {”Adriana”, ”Stopp”, ”F”, ”21”},

                               {«John», «Calamaro», «M», «40»},

                               {«Rosalía», «Bernard», « F « , « 67 « },

                               {”Juliana”, ”Perez”, ”F”, ”36”},

                               {”Israel”, ”González”, ”M”, ”36”}

                };

}

Hur lägger man till andra funktioner?

Förutom rullningslisten låter JTable dig lägga till oändliga funktioner för olika applikationer. Du kan lägga till möjligheten för användaren att beställa raderna efter eget tycke, du kan ändra utseendet på tabellen genom att modifiera bakgrundsfärgerna på cellerna, visa eller inte visa gränserna och så vidare.

Referenser

Abellán, J. (2007a, 4 februari). Exempel TableModel applet för JTable. Hämtad från http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php

Abellán, J. (2007b, 4 februari). Exempel på TableModel i JTable. Hämtad från http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php

Datorpiller [pildorasinformaticas]. (2017, 20 september). java kurs Bilagor III. JTabell I. Video 267 [Videofil]. Återställd från https://www.youtube.com/watch?v=yH_g6QGFqes

Sensei, J. (2011, 24 januari). Hur man väljer en rad från en Java JTable. Hämtad 13 september 2021 från http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html

-Annons-

Israel Parada (Licentiate,Professor ULA)
Israel Parada (Licentiate,Professor ULA)
(Licenciado en Química) - AUTOR. Profesor universitario de Química. Divulgador científico.

Artículos relacionados