Hogyan lehet „JTable” táblát létrehozni Java nyelven?

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

A JTable egy olyan osztály, amelyet a Java nyelven interaktív táblák létrehozására használnak, amelyeket a felhasználók szerkeszthetnek az adott programozási nyelv Swing API összetevőinek köszönhetően. Alapvetően egy grafikus felületből áll, amely lehetővé teszi az adatok táblázatos ábrázolását, lehetővé téve a GUI által megjelenített adatok különböző módokon történő megtekintését és interakcióját, beleértve többek között a táblázatok tartalmának szerkesztését, módosítását. az oszlopok és sorok méreteit, a különböző oszlopokat tetszés szerint rendezve.

Egyszerű JTable létrehozása

Ez a példa egy egyszerű táblázatot kíván felépíteni a következő információkkal:

Keresztnév Vezetéknév Szex Kor
Adriana Állj meg F huszonegy
Juan tintahal m 40
rozalia bernard F 67
Juliana perez F 36
Izrael gonzalez m 36

Ez a táblázat egy görgetősávval ellátott ablakban jelenik meg. Amikor JTable-t használunk az adatok táblázatos megjelenítésére, figyelembe kell venni, hogy a JTable csak a grafikus felület, nem tartalmazza a megjelenítendő adatokat. Ezeket az adatokat a modellosztályba kell foglalni. Más szóval, ahhoz, hogy a táblánk bármilyen adatot meg tudjon jeleníteni, először példányosítanunk kell egy adatmodellt, majd ezt a modellt át kell adni a JTable- nak a konstruktor segítségével.

Keret létrehozása

Figyelembe kell venni, hogy a JTable-nak szüksége van egy keretre, amelyben megjeleníthető, ezért először ezt kell létrehozni, és olyan információkat kell tartalmaznia, mint a keret helyzete és méretei, valamint annak megadása, hogy a keret megjelenik-e vagy sem. .

Ennek eléréséhez egy általános kód a következő lenne:

public class JTable_Use {

                Public static void main(String[] args) {   

                JFrame myframe=new TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

class TableFrame kiterjeszti a JFrame-et {

                public TableFrame() {

                               setTitle(„Felhasználói adatok”) ;

                               setBounds(200,200,700,500) ;

                }

}

A fenti kód 200×200-as pozícióban, 700×500-as méretű, látható keretet hoz létre Felhasználói adatok címmel.

Most létrehozunk egy táblázatot, amely a felhasználók adatait tartalmazza. A példa alkalmazásában ezek az adatok magukban foglalják a keresztnevet, a vezetéknevet, a nemet és az életkort.

Számos konstruktort használhatunk az adatok hozzáadásához a létrehozandó táblához. Az egyik legegyszerűbb konstruktor két adattömböt tesz lehetővé argumentumként:

JTable(Object[] [] rowData, Object[] oszlopnevek)

Amint láthatja, ez egy egyszerű konstruktor a JTable számára , amely argumentumként egy első paramétert vesz fel, amely egy kétdimenziós Object típusú tömb , amelyben az egyes soroknak megfelelő adatok szerepelnek majd ( rowData ), és egy második paramétert, amely szintén ez egy tömb , de egydimenziós, szintén Object típusú , amelyben az oszlopok fejlécei vagy nevei ( oszlopnév ) szerepelni fognak.

Röviden, ha ezt a konstruktort akarjuk használni, két tömböt kell deklarálnunk , az egyiket kétdimenziós, a másikat pedig egy dimenziós. Ezt a fent bemutatott keretrendszert felépítő osztályon belül tesszük.

Kezdjük azzal, hogy deklaráljuk az oszlopfejléceknek megfelelő tömböt . Mivel szövegről van szó, String típusúak lesznek . Ez alatt deklaráljuk a táblázat egyes soraiban megjelenő adatoknak megfelelő kétdimenziós tömböt . A tömb deklarációja így néz ki:

                private String [] columnheads={„Keresztnév”, „Vezetéknév”, „Nem”, „Kor”} ;

                private String [] [] userData={

                               {„Adriana”, „Stop”, „F”, „21”},

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

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

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

                               {„Izrael”, „González”, „M”, „36”}

                };

Ebben a kódban a „cabezadasColumnas” és „dataUsers” oszlopok nevét tartalmazó tömböt neveztük el annak a kétdimenziós tömbnek , amely a táblázatba kerülő öt felhasználó adatait tartalmazza.

Most, hogy megvannak azok az adatok, amelyeket meg szeretnénk jeleníteni a JTable-ban , továbblépünk a konstruktor használatával, hogy átadjuk ezeket az adatokat a JTable- nak . Ezt a korábban kialakított keretek között tesszük. A táblánknak nevet kell adnunk, ezért ebben a példában userTable-nak nevezzük:

JTable tablaUsuarios=new JTable(dataUsers, headersOszlopok) ;

Görgetősávok és központosítás hozzáadása

Ezen a ponton már van egy JTable , amely egy egyszerű táblázatot mutat 4 oszlopból és 6 sorból, amelynek első sora az oszlopfejlécekkel, majd 5 sor 5 felhasználó adataival. Előfordulhat azonban, hogy ez a táblázat nem fér bele az elején létrehozott 700×500-as keretbe, vagy ha most belefér, akkor később több felhasználó adatait is hozzáadhatjuk hozzá, és előfordulhat, hogy nem fér bele. Ebben az esetben hasznos görgetősávok hozzáadása, hogy a táblázatban szereplő összes információ látható legyen.

Ezt a JScrollPane segítségével tesszük . Ezen kívül az is kényelmes, hogy megadjuk az asztalunk pozícióját a kereten belül. Ehhez a BorderLayoutot használjuk , az alábbiak szerint:

add(new JScrollPane(userTable), BorderLayout.CENTER) ;

a végső kódot

Miután az összes részt hozzáadta a kódhoz, a következőképpen kell kinéznie:

public class JTable_Use {

                public static void main(String[] args) {   

                JFrame myframe=new TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

class TableFrame kiterjeszti a JFrame-et {

                public TableFrame() {

                               setTitle(„Felhasználói adatok”) ;

                               setBounds(200,200,500,500) ;

                               JTable tablaUsuarios=new JTable(dataUsers, headersOszlopok) ;

                               add(new JScrollPane(userTable), BorderLayout.CENTER) ;

                }

                private String [] columnheads={„Keresztnév”, „Vezetéknév”, „Nem”, „Kor”} ;

                private String [] [] userData={

                               {„Adriana”, „Stop”, „F”, „21”},

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

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

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

                               {„Izrael”, „González”, „M”, „36”}

                };

}

Hogyan adjunk hozzá más funkciókat?

A görgetősávon kívül a JTable lehetővé teszi, hogy végtelen számú funkciót adjon hozzá a különböző alkalmazásokhoz. Lehetőséget adhatunk arra, hogy a felhasználó tetszés szerint rendezze a sorokat, módosíthatja a táblázat megjelenését a cellák háttérszíneinek módosításával, a szegélyek megjelenítésével vagy mellőzésével, stb.

Hivatkozások

Abellán, J. (2007a, február 4.). Példa TableModel kisalkalmazás a JTable számára. Letöltve: http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php

Abellán, J. (2007b, február 4.). Példa a TableModelre a JTable-ban. Letöltve: http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php

Számítógépes tabletták [pildorasinformaticas]. (2017, szeptember 20.). java tanfolyam mellékletek III. JTable I. Video 267 [Video file]. Helyreállítva a https://www.youtube.com/watch?v=yH_g6QGFqes webhelyről

Sensei, J. (2011, január 24.). Hogyan válasszunk ki egy sort egy Java JTable-ból. Letöltve 2021. szeptember 13-án, innen: http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html

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