Java Reference
In-Depth Information
Wie gewohnt wird die Tabelle in der initGUI erstellt. Die Trennung von optischer Dar-
stellung und Datenhaltung erkennen Sie daran, dass zuerst ein TableModel erzeugt wird,
das die Daten bereithält. Anschließend wird die JTable erzeugt, in den Frame eingefügt,
und das TableModel wird an die Tabelle übergeben.
Das TableModel wird als DefaultTableModel erzeugt. Dieses TableModel ist so konzi-
piert, dass es mit Daten umgehen kann, die als Vector oder als Array vorliegen, und dass
es die dafür geeigneten Methoden bereitstellt. Für viele Anwendungen ist dieses Modell
vollkommen ausreichend. Für spezielle Anforderungen können Sie an die eigenen
Anforderungen angepasste Modelle von der Klasse AbstractTableModel ableiten.
Die Klasse Vector kann wie die neuere Klasse ArrayList verwendet werden, die in
Abschnitt 11.2 erläutert wurde. Die Klasse Vector war früher gebräuchlicher und wird
deshalb in DefaultTableModel noch verwendet. Die folgenden Beispiele zeigen, dass Sie
häufig mit einem einfachen Array auskommen.
Dem Konstruktor des DefaultTableModel werden zwei Arrays übergeben, die dabei auch
gleich erzeugt werden. In dem ersten zweidimensionalen Array werden die Tabellenda-
ten gespeichert, während das zweite Array die Spaltennamen aufnimmt. Ihnen ist
sicher aufgefallen, dass die Spaltenüberschriften in der Vorschau nicht angezeigt wer-
den. Das sollten wir gleich ändern. Was die dafür erforderliche Veränderung mit der
Darstellung der Spaltenüberschriften zu tun hat, ist vielleicht nicht ganz einsichtig, aber
da sie sowieso sinnvoll ist, soll Sie das nicht weiter stören. Damit bei größeren Tabellen
Scrollbalken eingeblendet werden, betten Sie die Tabelle in eine ScrollPane -Kompo-
nente ein. Sie können das ScrollPane nachträglich in den Frame einbauen und in der
Ansicht Outline die Table auf das ScrollPane ziehen, oder Sie löschen die Tabelle noch-
mal und fügen zuerst das ScrollPane ein, um darauf dann die Table abzulegen.
15
Die Vorschau zeigt nun neben den Tabellendaten auch die Spaltenüberschriften an.
Ändern Sie nun das Array-Literal für die Spaltenbeschriftungen im Quellcode so ab, dass
die Tabelle auf die Aufnahme von Stundenplandaten vorbereitet ist:
new String[] { "Stunde","Montag","Dienstag","Mittwoch","Donnerstag","Freitag" }
Sie können in der Vorschau verfolgen, dass die Tabellengröße der Anzahl der Spalten-
überschriften angepasst wird. Es stellt auch kein Problem dar, dass das Daten-Array klei-
ner ist. Passen Sie nun noch das Daten-Array so an, dass für jeden Tag zehn
Unterrichtstunden in die Tabelle passen:
new String[][]
{{"1"},{"2"},{"3"},{"4"},{"5"},{"6"},{"7"},{"8"},
{"9"},{"10"}}
Search WWH ::




Custom Search