StandardTableModel Class i Java lagrer data for JTable

De

DefaultTableModel

klassen er en underklasse av

AbstractTableModel

. Som navnet antyder er det tabellmodellen som brukes av a

når ingen tabellmodell er spesifikt definert av programmereren. StandardTableModel lagrer dataene for JTable i en

Vector

av

vektorer

.

Selv om

Vector

er en gammel Java-samling som det fremdeles støttes, og det er ikke noe problem med å bruke den med mindre tilleggskostnadene som skyldes bruk av en synkronisert samling, er et problem for Java-applikasjonen din.

Fordelen med å bruke

DefaultTableModel

over en skikk

AbstractTableModel

er du ikke trenger å kode metodene som å legge til, sette inn eller slette rader og kolonner. De eksisterer allerede for å endre dataene som er lagret i

Vector

av

Vektorer.

Dette gjør det til en rask og enkel bordmodell å implementere.

Importerklæring

import javax.swing.table. DefaultTableModel;

Constructors

De

DefaultTableModel

klassen har seks

. Hver kan brukes til å befolke

DefaultTableModel

på forskjellige måter.

Den første konstruktøren tar ingen argumenter og lager en

instagram viewer
DefaultTableModel

som ikke har noen data, null kolonner og null rader:

DefaultTableModel defTableModel = DefaultTableModel ();

Neste konstruktør kan brukes til å spesifisere antall rader og kolonner i a

DefaultTableModel

uten data:

DefaultTableModel defTableModel = DefaultTableModel (10, 10);

Det er to konstruktører som kan brukes til å lage en

DefaultTableModel

med kolonnenavn og et spesifisert antall rader (alle inneholder nullverdier). Man bruker en

Gjenstand

matrise for å holde kolonnenavn, den andre a

Vector

:

eller

DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);

Endelig er det to konstruktører som brukes til å befolke

DefaultTableModel

med raddata sammen med kolonnenavn. En brukt

Gjenstand

matriser, den andre

vektorer

:

eller

Nyttige metoder

Slik legger du til en rad i

DefaultTableModel

bruke

addRow

metoden sammen med raddataene du vil legge til:

For å sette inn en rad bruker du

insertRow

metoden, spesifiserer radindeksen som skal settes inn, og raddataene:

For å slette en rad bruker du

removeRow

metoden, spesifiserer radindeksen som skal slettes:

defTableModel.removeRow (0);

For å få en verdi i en tabellcelle, bruk

getValueAt

metode. Hvis dataene for eksempel på rad 2, inneholder kolonne 2 en int:

int-verdi = tabModel.getValueAt (2, 2);

For å sette en verdi i en tabellcelle

setValueAt

metoden med verdien som skal settes sammen med rad- og kolonneindeksen:

defTableModel.setValueAt (8888, 3, 2);

Tips om bruk

Hvis en

JTable

opprettes ved hjelp av konstruktøren som sendes over en todimensjonal matrise som inneholder raddataene og en matrise som inneholder kolonnenavn:

da vil ikke følgende rollebesetning fungere:

En kjøretid

ClassCastException

vil bli kastet fordi i dette tilfellet

DefaultTableModel

er erklært som en

i

JTable

objekt og kan ikke støpes. Den kan bare støpes til

TableModel

grensesnitt. En vei rundt dette er å lage din egen

DefaultTableModel

og angi at den skal være modellen til

JTable

:

Og så

DefaultTableModel
defTableModel

kan brukes til å manipulere dataene i

JTable

.

Å se

DefaultTableModel

i aksjon se på

.

instagram story viewer