Die DefaultTableModel-Klasse in Java speichert Daten für die JTable

click fraud protection

Das

DefaultTableModel

Klasse ist eine Unterklasse der

AbstractTableModel

. Wie der Name schon sagt, wird das Tabellenmodell von a verwendet

wenn vom Programmierer kein Tabellenmodell speziell definiert wird. Das DefaultTableModel speichert die Daten für die JTable in a

Vektor

von

Vektoren

.

Obwohl die

Vektor

ist eine ältere Java-Sammlung, die weiterhin unterstützt wird, und es gibt kein Problem bei der Verwendung, es sei denn, der zusätzliche Aufwand, der durch die Verwendung einer synchronisierten Sammlung verursacht wird, ist ein Problem für Ihre Java-Anwendung.

Der Vorteil der Verwendung der

DefaultTableModel

über einen Brauch

AbstractTableModel

ist, dass Sie die Methoden wie Hinzufügen, Einfügen oder Löschen von Zeilen und Spalten nicht codieren müssen. Sie existieren bereits, um die in der

Vektor

von

Vektoren.

Dies macht es zu einem schnellen und einfachen Implementierungsmodell.

Import-Anweisung

javax.swing.table importieren. DefaultTableModel;

Konstruktoren

Das

DefaultTableModel

Klasse hat sechs

. Jeder kann verwendet werden, um die zu füllen

instagram viewer
DefaultTableModel

auf veschiedenen Wegen.

Der erste Konstruktor akzeptiert keine Argumente und erstellt eine

DefaultTableModel

die keine Daten, Nullspalten und Nullzeilen hat:

DefaultTableModel defTableModel = DefaultTableModel ();

Der nächste Konstruktor kann verwendet werden, um die Anzahl der Zeilen und Spalten von a anzugeben

DefaultTableModel

ohne Daten:

DefaultTableModel defTableModel = DefaultTableModel (10, 10);

Es gibt zwei Konstruktoren, mit denen ein erstellt werden kann

DefaultTableModel

mit Spaltennamen und einer angegebenen Anzahl von Zeilen (alle enthalten Nullwerte). Man benutzt eine

Objekt

Array für die Spaltennamen, das andere a

Vektor

:

oder

DefaultTableModel defTableModel = DefaultTableModel (columnNames, 10);

Schließlich gibt es zwei Konstruktoren, die zum Auffüllen von verwendet werden

DefaultTableModel

mit Zeilendaten zusammen mit Spaltennamen. Einer benutzt

Objekt

Arrays, die anderen

Vektoren

:

oder

Nützliche Methoden

Hinzufügen einer Zeile zum

DefaultTableModel

benutze die

Zeile hinzufügen

Methode zusammen mit den hinzuzufügenden Zeilendaten:

Um eine Zeile einzufügen, verwenden Sie die

insertRow

Methode, die den einzufügenden Zeilenindex und die Zeilendaten angibt:

Um eine Zeile zu löschen, verwenden Sie die

removeRow

Methode, die den zu löschenden Zeilenindex angibt:

defTableModel.removeRow (0);

Um einen Wert in einer Tabellenzelle zu erhalten, verwenden Sie die

getValueAt

Methode. Wenn die Daten in Zeile 2, Spalte 2 beispielsweise ein int enthalten:

int value = tabModel.getValueAt (2, 2);

So legen Sie einen Wert in einer Tabellenzelle fest

setValueAt

Methode mit dem Wert, der zusammen mit dem Zeilen- und Spaltenindex festgelegt werden soll:

defTableModel.setValueAt (8888, 3, 2);

Verwendungstipps

Wenn ein

JTable

wird mit dem Konstruktor erstellt, dem ein zweidimensionales Array mit den Zeilendaten und ein Array mit den Spaltennamen übergeben wird:

dann funktioniert die folgende Besetzung nicht:

Eine Laufzeit

ClassCastException

wird geworfen, weil in diesem Fall die

DefaultTableModel

wird als deklariert

in dem

JTable

Objekt und kann nicht gegossen werden. Es kann nur auf die gegossen werden

TableModel

Schnittstelle. Eine Möglichkeit, dies zu umgehen, besteht darin, Ihre eigenen zu erstellen

DefaultTableModel

und setzen Sie es als das Modell der

JTable

:

Dann ist die

DefaultTableModel
defTableModel

kann verwendet werden, um die Daten in der zu manipulieren

JTable

.

Zu sehen

DefaultTableModel

in Aktion werfen Sie einen Blick auf die

.

instagram story viewer