StandardTableModel Class i Java lagrar data för JTable

click fraud protection

De

DefaultTableModel

klass är en underklass av

AbstractTableModel

. Som namnet antyder är det tabellmodellen som används av a

när ingen tabellmodell definieras specifikt av programmeraren. StandardTableModel lagrar data för JTable i en

Vektor

av

vektorer

.

Även om

Vektor

är en äldre Java-samling det stöds fortfarande och det finns inget problem med att använda den om inte den extra omkostnad som orsakas av att använda en synkroniserad samling är ett problem för din Java-applikation.

Fördelen med att använda

DefaultTableModel

över en anpassad

AbstractTableModel

är du inte behöver koda metoderna som att lägga till, infoga eller ta bort rader och kolumner. De finns redan för att ändra data som finns i

Vektor

av

Vektorer.

Detta gör det till en snabb och enkel tabellmodell att implementera.

Importmeddelande

importera javax.swing.table. DefaultTableModel;

konstruktörer

De

DefaultTableModel

klass har sex

. Var och en kan användas för att fylla i

DefaultTableModel

på olika sätt.

Den första konstruktören tar inga argument och skapar en

instagram viewer
DefaultTableModel

som inte har några data, noll kolumner och noll rader:

DefaultTableModel defTableModel = DefaultTableModel ();

Nästa konstruktör kan användas för att ange antalet rader och kolumner i a

DefaultTableModel

utan data:

DefaultTableModel defTableModel = DefaultTableModel (10, 10);

Det finns två konstruktörer som kan användas för att skapa en

DefaultTableModel

med kolumnnamn och ett specificerat antal rader (alla innehåller nollvärden). Man använder en

Objekt

array för att hålla kolumnnamnen, den andra a

Vektor

:

eller

DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);

Slutligen finns det två konstruktörer som används för att fylla

DefaultTableModel

med raddata tillsammans med kolumnnamn. En används

Objekt

matriser, den andra

vektorer

:

eller

Användbara metoder

Lägga till en rad i

DefaultTableModel

Använd

Lägg till rad

metod tillsammans med raddata för att lägga till:

För att infoga en rad använder du

insertRow

metod, specificera radindex att infoga och raddata:

För att radera en rad använder du

removeRow

metod, specificera radindex att radera:

defTableModel.removeRow (0);

För att få ett värde i en tabellcell använder du

getValueAt

metod. Om till exempel data i rad 2 innehåller kolumn 2 en int:

int-värde = tabModel.getValueAt (2, 2);

För att ställa in ett värde i en tabellcell

setValueAt

metod med det värde som ska ställas in tillsammans med rad- och kolumnindex:

defTableModel.setValueAt (8888, 3, 2);

Tips om användning

Om en

JTable

skapas med hjälp av konstruktören som passerar en tvådimensionell matris som innehåller raddata och en matris som innehåller kolumnnamnen:

då fungerar följande rollspel inte:

En körtid

ClassCastException

kommer att kastas eftersom i detta fall

DefaultTableModel

förklaras som en

i

JTable

objekt och kan inte kastas. Det kan bara kastas till

TableModel

gränssnitt. En väg runt detta är att skapa din egen

DefaultTableModel

och ange att den ska vara modellen för

JTable

:

Sedan

DefaultTableModel
defTableModel

kan användas för att manipulera data i

JTable

.

Att se

DefaultTableModel

i aktion titta på

.

instagram story viewer