StandardTableModel Class i Java gemmer data for JTable

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

instagram viewer
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å

.

instagram story viewer