DefaultTableModel
clasa este o subclasa a
AbstractTableModel
. După cum sugerează și numele, este modelul de tabel care este folosit de un
când niciun model de tabel nu este definit în mod specific de programator. DefaultTableModel stochează datele pentru JTable într-un
Vector
de
Vectorii
.
desi
Vector
este o colecție Java moștenită, aceasta este în continuare acceptată și nu există nicio problemă cu folosirea ei, cu excepția cazului în care depășirea suplimentară cauzată de utilizarea unei colecții sincronizate este o problemă pentru aplicația dvs. Java.
Avantajul utilizării
DefaultTableModel
peste un obicei
AbstractTableModel
nu trebuie să codificați metodele precum adăugarea, inserarea sau ștergerea rândurilor și coloanelor. Există deja pentru a schimba datele deținute în
Vector
de
Vectorii.
Acest lucru îl face un model de masă rapid și ușor de implementat.
Declarație de import
import javax.swing.table. DefaultTableModel;
constructorilor
DefaultTableModel
clasa are șase
. Fiecare poate fi utilizat pentru a popula
DefaultTableModel
în diverse feluri.
Primul constructor nu ia argumente și creează un
DefaultTableModel
care nu are date, zero coloane și zero rânduri:
DefaultTableModel defTableModel = DefaultTableModel ();
Următorul constructor poate fi utilizat pentru a specifica numărul de rânduri și coloane ale unui
DefaultTableModel
fara date:
DefaultTableModel defTableModel = DefaultTableModel (10, 10);
Există doi constructori care pot fi folosiți pentru a crea un
DefaultTableModel
cu nume de coloană și un număr specificat de rânduri (toate conținând valori nule). Unul folosește un
Obiect
tablou pentru a reține numele coloanelor, celălalt a
Vector
:
sau
DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);
În sfârșit, există doi constructori folosiți pentru popularea
DefaultTableModel
cu date de rând împreună cu numele coloanelor. Unul folosit
Obiect
matricile, celălalt
Vectorii
:
sau
Metode utile
Pentru a adăuga un rând la
DefaultTableModel
folosește
addRow
metoda împreună cu datele de rând pentru a adăuga:
Pentru a insera un rând, folosiți butonul
insertRow
metoda, specificând indexul de rând pe care trebuie să îl inserați și datele rândului:
Pentru a șterge un rând, utilizați tasta
removeRow
metoda, specificând indicele de rând care se șterge:
defTableModel.removeRow (0);
Pentru a obține o valoare într-o celulă de tabel, utilizați
getValueAt
metodă. De exemplu, dacă datele din rândul 2, coloana 2 conțin o int:
valoarea int = tabModel.getValueAt (2, 2);
Pentru a seta o valoare într-o celulă de tabel
setValueAt
metoda cu valoarea de setat împreună cu indexul rând și coloană:
defTableModel.setValueAt (8888, 3, 2);
Sfaturi de utilizare
În cazul în care un
JTable
este creat folosind constructorul care a trecut un tablou bidimensional care conține datele rândului și un tablou care conține numele coloanelor:
atunci următoarea distribuție nu va funcționa:
Un timp de rulare
ClassCastException
va fi aruncat pentru că în acest caz
DefaultTableModel
este declarat drept an
în
JTable
obiect și nu poate fi turnat. Poate fi aruncat numai la
TableModel
interfață. O modalitate în acest sens este să-ți creezi propria ta
DefaultTableModel
și setați-l să fie modelul
JTable
:
Apoi
DefaultTableModel
defTableModel
poate fi folosit pentru a manipula datele din
JTable
.
Pentru a vedea
DefaultTableModel
în acțiune aruncați o privire asupra
.