So erstellen Sie eine einfache Tabelle in Java zur Verwendung in einer GUI

click fraud protection

Verwenden von Arrays zum Speichern der Tabellendaten

Eine einfache Möglichkeit, Daten für die

Klasse ist, zwei Arrays zu verwenden. Der erste enthält die Spaltennamen in a

Array:

Das zweite Array ist ein zweidimensionales Objektarray, das die Daten für die Tabelle enthält. Dieses Array umfasst beispielsweise sechs olympische Schwimmer:

Der Schlüssel hier ist, sicherzustellen, dass die beiden Arrays die gleiche Anzahl von Spalten haben.

Erstellen der JTable

Sobald Sie die Daten eingerichtet haben, ist es eine einfache Aufgabe, die Tabelle zu erstellen. Rufen Sie einfach die

JTable
Konstrukteur und übergeben Sie ihm die beiden Arrays: Sie möchten wahrscheinlich Bildlaufleisten hinzufügen, um sicherzustellen, dass der Benutzer alle Daten sehen kann. Platzieren Sie dazu die.
JTable
in ein
JScrollPane
: Wenn die Tabelle angezeigt wird, sehen Sie die Spalten und Zeilen der Daten und können nach oben und unten scrollen.

Das JTable-Objekt bietet eine interaktive Tabelle. Wenn Sie auf eine der Zellen doppelklicken, können Sie den Inhalt bearbeiten - obwohl jede Bearbeitung nur die GUI betrifft, nicht die zugrunde liegenden Daten. (Ein

instagram viewer
Ereignis-Listener müsste implementiert werden, um die Änderung von Daten zu behandeln.).

Um die Breite der Spalten zu ändern, bewegen Sie die Maus über den Rand einer Spaltenüberschrift und ziehen Sie sie vor und zurück. Um die Reihenfolge der Spalten zu ändern, klicken Sie auf eine Spaltenüberschrift, halten Sie sie gedrückt und ziehen Sie sie an die neue Position.

Spalten sortieren

Rufen Sie die auf, um die Zeilen sortieren zu können

setAutoCreateRowSorter
Methode: Wenn diese Methode auf true gesetzt ist, können Sie auf eine Spaltenüberschrift klicken, um die Zeilen nach dem Inhalt der Zellen unter dieser Spalte zu sortieren.

Ändern des Erscheinungsbilds der Tabelle

Verwenden Sie die Taste, um die Sichtbarkeit der Gitterlinien zu steuern

setShowGrid
Methode: Um die Farbe der Tabelle insgesamt zu ändern, verwenden Sie die.
Hintergrund einstellen
und
setGridColor
Methoden: Die Spaltenbreiten der Tabelle sind standardmäßig gleich. Wenn der Container, in dem sich die Tabelle befindet, die Größe ändert, werden die Spaltenbreiten erweitert und verkleinert, und der Container wird größer oder kleiner. Wenn ein Benutzer die Größe der Spalte ändert, ändert sich die Breite der Spalten rechts, um die neue Spaltengröße zu berücksichtigen.

Die anfänglichen Spaltenbreiten können mit der setPreferredWidth-Methode oder einer Spalte festgelegt werden. Verwenden Sie die TableColumn-Klasse, um zuerst einen Verweis auf die Spalte abzurufen, und dann die setPreferredWidth-Methode, um die Größe festzulegen:

Zeilen auswählen

Standardmäßig kann der Benutzer die Zeilen der Tabelle auf drei Arten auswählen:

  • Um eine einzelne Zeile auszuwählen, wählen Sie eine Tabellenzelle in dieser Zeile aus.
  • Um fortlaufende, mehrere Zeilen auszuwählen, ziehen Sie die Maus über mehrere Zeilen oder wählen Sie die Tabellenzellen mit gedrückter Umschaltzelle aus.
  • Um nicht fortlaufende, mehrere Zeilen auszuwählen, wählen Sie Tabellenzellen aus, während Sie die Taste gedrückt halten Steuertaste (Befehlstaste für Macs).

Verwenden eines Tabellenmodells

Die Verwendung einiger Arrays für die Daten einer Tabelle kann hilfreich sein, wenn Sie eine einfache möchten String-basierte Tabelle, die bearbeitet werden kann. Wenn Sie sich das von uns erstellte Datenarray ansehen, enthält es andere Datentypen als

- das

Spalte enthält

und die

Spalte enthält

. Beide Spalten werden jedoch als Zeichenfolgen angezeigt. Erstellen Sie ein Tabellenmodell, um dieses Verhalten zu ändern.

Ein Tabellenmodell verwaltet die Daten, die in der Tabelle angezeigt werden sollen. Um ein Tabellenmodell zu implementieren, können Sie eine Klasse erstellen, die das erweitert

Klasse:

Die sechs oben genannten Methoden werden in dieser Schritt-für-Schritt-Anleitung verwendet. Es gibt jedoch weitere Methoden, die durch die

Klasse, die bei der Bearbeitung der Daten in a nützlich sind

Objekt. Wenn Sie eine Klasse erweitern, um die zu verwenden

Sie müssen nur die implementieren

,

und

Methoden.

Erstellen Sie eine neue Klasse, die die oben gezeigten fünf Methoden implementiert:

In diesem Beispiel macht es Sinn für die

Klasse für die beiden Zeichenfolgen, die die Tabellendaten enthalten. Dann ist die

,

und

Methoden können die Arrays verwenden, um die Werte für die Tabelle bereitzustellen. Beachten Sie auch, wie die

Es wurde eine Methode geschrieben, um die ersten beiden zu bearbeitenden Spalten nicht zuzulassen.

Anstatt jetzt die beiden Arrays zum Erstellen des zu verwenden

Objekt können wir das verwenden

Klasse:

Wenn der Code ausgeführt wird, sehen Sie, dass die

Das Objekt verwendet das Tabellenmodell, da keine der Tabellenzellen bearbeitet werden kann und die Spaltennamen korrekt verwendet werden. Wenn die

Wenn die Methode nicht implementiert wurde, werden die Spaltennamen in der Tabelle als Standardnamen für A, B, C, D usw. angezeigt.

Betrachten wir nun die Methode

. Dies allein macht das Tabellenmodell die Implementierung wert, da es das bereitstellt

Objekt mit dem in jeder Spalte enthaltenen Datentyp. Wenn Sie sich erinnern, enthält das Objektdatenarray zwei Spalten, die nicht vorhanden sind

Datentypen: die

Spalte, die Ints enthält, und die

Spalte, die enthält

. Wenn Sie diese Datentypen kennen, ändert sich die Funktionalität von

Objekt für diese Spalten. Das Ausführen des Beispieltabellencodes mit dem implementierten Tabellenmodell bedeutet Folgendes:

Spalte wird tatsächlich eine Reihe von Kontrollkästchen sein.

Hinzufügen eines ComboBox-Editors

Sie können benutzerdefinierte Editoren für die Zellen in der Tabelle definieren. Sie können beispielsweise ein Kombinationsfeld als Alternative zur Standardtextbearbeitung für ein Feld festlegen.

Hier ist ein Beispiel mit

das Länderfeld:

Verwenden Sie die Option, um den Standardeditor für die Länderspalte festzulegen

Klasse, um einen Verweis auf die Länderspalte zu erhalten, und die

Methode zum Einstellen der

als Zelleneditor:

instagram story viewer