Det
DefaultTableModel
klassen er en underklasse af
AbstractTableModel
. Som navnet antyder er det bordmodellen, der bruges af a
når ingen tabelmodel er specifikt defineret af programmereren. StandardTableModel gemmer dataene for JTable i en
Vector
af
Vektorer
.
Selvom
Vector
er en ældre Java-samling, det understøttes stadig, og der er ikke noget problem med at bruge den, medmindre den ekstra omkostning, der er forårsaget af brug af en synkroniseret samling, er et problem for dit Java-program.
Fordelen ved at bruge
DefaultTableModel
over en brugerdefineret
AbstractTableModel
er du ikke nødt til at kode metoderne som tilføje, indsætte eller slette rækker og kolonner. De findes allerede for at ændre de data, der er indeholdt i
Vector
af
Vektorer.
Dette gør det til en hurtig og nem bordmodel at implementere.
Importerklæring
import javax.swing.table. DefaultTableModel;
Constructors
Det
DefaultTableModel
klassen har seks
. Hver kan bruges til at udfylde
DefaultTableModel
på forskellige måder.
Den første konstruktør tager ingen argumenter og skaber en
DefaultTableModel
som ikke har nogen data, nul kolonner og nul rækker:
DefaultTableModel defTableModel = DefaultTableModel ();
Den næste konstruktør kan bruges til at specificere antallet af rækker og kolonner i en
DefaultTableModel
uden data:
DefaultTableModel defTableModel = DefaultTableModel (10, 10);
Der er to konstruktører, der kan bruges til at oprette en
DefaultTableModel
med kolonnenavne og et specificeret antal rækker (alle indeholder nullværdier). Man bruger en
Objekt
array for at holde kolonnenavne, den anden a
Vector
:
eller
DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);
Endelig er der to konstruktører brugt til at udfylde
DefaultTableModel
med række data sammen med kolonnenavne. En brugt
Objekt
arrays, den anden
Vektorer
:
eller
Nyttige metoder
Sådan føjes en række til
DefaultTableModel
brug
addRow
metode sammen med række data til at tilføje:
For at indsætte en række skal du bruge
insertRow
metode, der specificerer rækkeindekset, der skal indsættes, og rædedataene:
For at slette en række skal du bruge
removeRow
metode, der specificerer rækkeindekset, der skal slettes:
defTableModel.removeRow (0);
For at få en værdi i en tabelcelle skal du bruge
getValueAt
metode. For eksempel, hvis dataene i række 2, indeholder kolonne 2 en int:
int-værdi = tabModel.getValueAt (2, 2);
Sådan indstilles en værdi i en tabelcelle
setValueAt
metode med den værdi, der skal indstilles sammen med række- og kolonneindekset:
defTableModel.setValueAt (8888, 3, 2);
Tips til brug
Hvis en
JTable
oprettes ved hjælp af konstruktøren, der sendes gennem en todimensionel matrix, der indeholder rækkedataene og en matrix, der indeholder kolonnenavn:
så fungerer følgende rollebesætning ikke:
En runtime
ClassCastException
vil blive kastet, fordi i dette tilfælde
DefaultTableModel
er erklæret som en
i
JTable
objekt og kan ikke støbes. Det kan kun støbes til
TableModel
grænseflade. En vej omkring dette er at skabe din egen
DefaultTableModel
og indstil det til at være modellen for
JTable
:
Derefter
DefaultTableModel
defTableModel
kan bruges til at manipulere dataene i
JTable
.
At se
DefaultTableModel
i aktion se på
.