Cum se creează un tabel „JTable” în Java?

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


Un JTable este o clasă care este folosită în Java pentru a crea tabele interactive care pot fi editate de utilizatori datorită componentelor Swing API ale acelui limbaj de programare. Practic constă dintr-o interfață grafică care vă permite să reprezentați datele sub forma unui tabel, permițându-vă să vizualizați și să interacționați cu datele afișate de GUI în diferite moduri, inclusiv, printre altele, editarea conținutului tabelelor, modificarea dimensiunile coloanelor si randurilor, ordonand diferitele coloane dupa bunul plac.

Crearea unui JTable simplu

Acest exemplu încearcă să construiască un tabel simplu cu următoarele informații:

Nume Nume Sex Vârstă
Adriana Stop F douăzeci și unu
Juan calmar m 40
rozalia bernard F 67
Juliana perez F 36
Israel gonzalez m 36

Acest tabel va fi afișat într-o fereastră cu o bară de defilare. Când folosim un JTable pentru a prezenta date în formă tabelară, trebuie să ținem cont de faptul că JTable este doar interfața grafică și nu conține datele de prezentat. Aceste date trebuie incluse în clasa modelului. Cu alte cuvinte, pentru ca tabelul nostru să poată afișa orice date, trebuie mai întâi să instanțiem un model de date și apoi să transmitem acest model la JTable folosind constructorul.

Crearea unui cadru

Trebuie să ținem cont de faptul că JTable- ul are nevoie de un cadru în care să poată fi afișat, așa că acesta trebuie creat mai întâi, și să includă informații precum poziția și dimensiunile cadrului, precum și specificarea dacă cadrul va fi afișat sau nu. .

Un cod generic pentru a realiza acest lucru ar fi:

clasă publică JTable_Use {

                Public static void main(String[] args) {   

                JFrame myframe=nou TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

clasa TableFrame extinde JFrame {

                public TableFrame() {

                               setTitle(„Date utilizator”);

                               setBounds(200.200.700.500);

                }

}

Codul de mai sus creează un cadru vizibil situat la poziția 200×200 și cu dimensiunile 700×500 cu titlul Date utilizator.

Acum, vom crea un tabel care va conține date despre utilizatori. Aceste date vor include, în sensul acestui exemplu, numele, prenumele, sexul și vârsta.

Există mai mulți constructori pe care îi putem folosi pentru a adăuga datele la tabelul pe care îl creăm. Unul dintre cei mai simpli constructori permite luarea a două matrice de date ca argumente:

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

După cum puteți vedea, acesta este un constructor simplu pentru JTable care ia ca argument un prim parametru care este o matrice bidimensională de tip Object în care vor fi incluse datele corespunzătoare fiecărui rând ( rowData ), și un al doilea parametru care, de asemenea, este un tablou dar cu o singură dimensiune, tot de tip Object , în care vor fi incluse anteturile sau numele coloanelor ( columnName ).

Pe scurt, dacă dorim să folosim acest constructor, trebuie să declarăm două tablouri , unul cu două dimensiuni și unul cu o singură dimensiune. Facem acest lucru în cadrul clasei care construiește cadrul prezentat mai sus.

Vom începe prin a declara matricea corespunzătoare antetelor de coloană. Deoarece sunt text, vor fi de tip String . Sub aceasta, vom declara matricea bidimensională corespunzătoare datelor care vor fi afișate în fiecare rând al tabelului. Declarația matricei arată astfel:

                private String [] columnheads={„Prenumele”, „Numele”, „Sexul”, „Vârsta”} ;

                private String [] [] userData={

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

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

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

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

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

                };

În acest cod, am denumit matricea care conține numele coloanelor „cabezadasColumnas” și „dataUsers” matricea bidimensională care conține datele celor cinci utilizatori care vor fi incluși în tabel.

Acum că avem datele pe care dorim să le afișeze JTable , trecem la utilizarea constructorului pentru a transmite aceste date la JTable . Facem acest lucru în cadrul pe care l-am creat mai devreme. Trebuie să dăm un nume tabelului nostru, așa că îl vom numi, pentru acest exemplu, userTable:

JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;

Cum să adăugați bare de defilare și centrare

În acest moment, avem deja un JTable care arată un tabel simplu cu 4 coloane și 6 rânduri, care are un prim rând cu antetele coloanelor urmate de 5 rânduri cu datele a 5 utilizatori. Cu toate acestea, este posibil ca acest tabel să nu se încadreze în cadrul de 700×500 pe care l-am creat la început sau, dacă se potrivește acum, este posibil să adăugăm mai târziu date despre mai mulți utilizatori și în cele din urmă nu se va potrivi. În acest caz, este util să adăugați bare de defilare pentru a vă asigura că toate informațiile din tabel sunt vizibile.

Facem acest lucru prin JScrollPane . În plus, este convenabil să specificați poziția mesei noastre în cadrul cadrului. Pentru aceasta, folosim BorderLayout , după cum urmează:

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

codul final

După ce ați adăugat toate părțile la cod, ar trebui să arate astfel:

clasă publică JTable_Use {

                public static void main(String[] args) {   

                JFrame myframe=nou TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true) ;

                }

}

clasa TableFrame extinde JFrame {

                public TableFrame() {

                               setTitle(„Date utilizator”);

                               setBounds(200.200.500.500) ;

                               JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;

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

                }

                private String [] columnheads={„Prenumele”, „Numele”, „Sexul”, „Vârsta”} ;

                private String [] [] userData={

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

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

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

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

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

                };

}

Cum se adaugă alte funcții?

Pe lângă bara de defilare, JTable vă permite să adăugați funcții nesfârșite pentru diferite aplicații. Poți adăuga posibilitatea ca utilizatorul să ordoneze rândurile după bunul tău plac, poți modifica aspectul tabelului modificând culorile de fundal ale celulelor, afișând sau neafișând marginile etc.

Referințe

Abellán, J. (2007a, 4 februarie). Exemplu de applet TableModel pentru JTable. Preluat de la http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php

Abellán, J. (2007b, 4 februarie). Exemplu de TableModel în JTable. Preluat de la http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php

Computer Pills [pildorasinformaticas]. (20 septembrie 2017). curs java Anexele III. JTabel I. Video 267 [Fișier video]. Recuperat de pe https://www.youtube.com/watch?v=yH_g6QGFqes

Sensei, J. (2011, 24 ianuarie). Cum să selectați un rând dintr-un JTable Java. Preluat la 13 septembrie 2021, de pe http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html

-Publicitate-

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