DefaultTableModel
třída je podtřída
AbstractTableModel
. Jak název napovídá, jedná se o model tabulky, který používá a
když není programátorem konkrétně definován žádný model tabulky. DefaultTableModel ukládá data pro JTable v a
Vektor
z
Vektory
.
Ačkoliv
Vektor
je starší kolekce Java, která je stále podporována a není problém s jejím používáním, ledaže by dodatečná režie způsobená použitím synchronizované kolekce byla problémem pro vaši aplikaci Java.
Výhoda použití
DefaultTableModel
přes vlastní
AbstractTableModel
nemusíte kódovat metody, jako je přidávání, vkládání nebo mazání řádků a sloupců. Již existují ke změně údajů uchovávaných v systému
Vektor
z
Vektory.
Díky tomu je implementován rychlý a snadný model stolu.
Importní prohlášení
import javax.swing.table. DefaultTableModel;
Konstruktory
DefaultTableModel
třída má šest
. Každý může být použit k naplnění
DefaultTableModel
v různých cestách.
První konstruktér nepřijímá žádné argumenty a vytváří a
DefaultTableModel
který nemá žádná data, nulové sloupce a nulové řádky:
DefaultTableModel defTableModel = DefaultTableModel ();
Další konstruktor lze použít k určení počtu řádků a sloupců a
DefaultTableModel
bez údajů:
DefaultTableModel defTableModel = DefaultTableModel (10, 10);
Existují dva konstruktory, které lze použít k vytvoření
DefaultTableModel
s názvy sloupců a zadaným počtem řádků (všechny obsahující nulové hodnoty). Jeden používá
Objekt
pole pro pojmenování sloupců, ostatní a
Vektor
:
nebo
DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);
Konečně existují dva konstruktéři používané k naplnění
DefaultTableModel
s daty řádků a názvy sloupců. Jeden použitý
Objekt
pole, druhé
Vektory
:
nebo
Užitečné metody
Chcete-li přidat řádek do
DefaultTableModel
použijte
addRow
metoda spolu s údaji v řádku přidat:
Pro vložení řádku použijte
insertRow
metoda, určující index řádku, který má být vložen, a data řádku:
Pro smazání řádku použijte
removeRow
metoda, určující index řádku, který se má odstranit:
defTableModel.removeRow (0);
Chcete-li získat hodnotu v buňce tabulky, použijte
getValueAt
metoda. Pokud například data v řádku 2, sloupec 2 obsahuje int:
int value = tabModel.getValueAt (2, 2);
Nastavení hodnoty v buňce tabulky
setValueAt
metoda s hodnotou nastavenou společně s indexem řádků a sloupců:
defTableModel.setValueAt (8888, 3, 2);
Tipy pro použití
Pokud
JTable
je vytvořen pomocí konstruktoru, který je předán dvourozměrnému poli obsahujícímu data řádků a matici obsahující názvy sloupců:
pak následující obsazení nebude fungovat:
Runtime
ClassCastException
bude hozen, protože v tomto případě bude
DefaultTableModel
je deklarován jako
v
JTable
objekt a nelze obsadit. Může být odevzdán pouze do
TableModel
rozhraní. Způsob, jak to obejít, je vytvořit si vlastní
DefaultTableModel
a nastavit jej jako vzor
JTable
:
Pak
DefaultTableModel
defTableModel
lze použít k manipulaci s daty v systému Windows
JTable
.
Chcete-li vidět
DefaultTableModel
v akci se podívejte na
.