Tabla de Contenidos
Eine JTable ist eine Klasse, die in Java verwendet wird, um interaktive Tabellen zu erstellen, die von Benutzern dank der Swing- API-Komponenten dieser Programmiersprache bearbeitet werden können. Es besteht im Wesentlichen aus einer grafischen Oberfläche, mit der Sie Daten in Form einer Tabelle darstellen können, sodass Sie die von der GUI angezeigten Daten auf unterschiedliche Weise anzeigen und mit ihnen interagieren können, darunter unter anderem das Bearbeiten des Inhalts der Tabellen und das Ändern die Dimensionen der Spalten und Zeilen, wobei die verschiedenen Spalten nach Belieben angeordnet werden.
Erstellen einer einfachen JTable
In diesem Beispiel soll eine einfache Tabelle mit den folgenden Informationen erstellt werden:
Vorname | Familienname, Nachname | Sex | Alter |
Adriana | Stoppen | F | einundzwanzig |
Juan | Tintenfisch | M | 40 |
rosalie | Bernhard | F | 67 |
Julia | perez | F | 36 |
Israel | gonzalez | M | 36 |
Diese Tabelle wird in einem Fenster mit einer Bildlaufleiste angezeigt. Bei der Verwendung einer JTable zur Darstellung von Daten in tabellarischer Form müssen wir berücksichtigen, dass die JTable nur die grafische Oberfläche ist und nicht die darzustellenden Daten enthält. Diese Daten müssen in der Modellklasse enthalten sein. Mit anderen Worten, damit unsere Tabelle überhaupt Daten anzeigen kann, müssen wir zuerst ein Datenmodell instanziieren und dieses Modell dann mit dem Konstruktor an die JTable übergeben.
Erstellen eines Rahmens
Wir müssen berücksichtigen, dass die JTable einen Rahmen benötigt, in dem sie angezeigt werden kann, also muss dieser zuerst erstellt werden und Informationen wie die Position und Abmessungen des Rahmens enthalten, sowie die Angabe, ob der Rahmen angezeigt wird oder nicht .
Ein generischer Code, um dies zu erreichen, wäre:
öffentliche Klasse JTable_Use {
Public static void main(String[] args) {
JFrame myframe=new TableFrame() ;
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
myframe.setVisible(true) ;
}
}
Klasse TableFrame erweitert JFrame {
öffentliches TableFrame() {
setTitle(„Benutzerdaten“) ;
setBounds(200.200.700.500) ;
}
}
Der obige Code erstellt einen sichtbaren Rahmen an Position 200×200 und mit den Abmessungen 700×500 mit dem Titel Benutzerdaten.
Jetzt erstellen wir eine Tabelle, die Daten über Benutzer enthält. Zu diesen Daten gehören für die Zwecke dieses Beispiels Vorname, Nachname, Geschlecht und Alter.
Es gibt mehrere Konstruktoren, die wir verwenden können, um die Daten zu der Tabelle hinzuzufügen, die wir erstellen. Einer der einfachsten Konstruktoren erlaubt es, zwei Datenarrays als Argumente zu nehmen:
JTable(Object[] [] rowData, Object[] columnNames)
Wie Sie sehen können, ist dies ein einfacher Konstruktor für JTable , der als Argument einen ersten Parameter verwendet, der ein zweidimensionales Array vom Typ Object ist , in dem die Daten enthalten sind, die jeder Zeile entsprechen ( rowData ), und einen zweiten Parameter ebenfalls es ist ein Array , aber mit einer Dimension, ebenfalls vom Typ Object , in dem die Überschriften oder Namen der Spalten ( columnName ) enthalten sind.
Kurz gesagt, wenn wir diesen Konstruktor verwenden möchten, müssen wir zwei Arrays deklarieren , eines mit zwei Dimensionen und eines mit einer Dimension. Wir tun dies innerhalb der Klasse, die das oben gezeigte Framework erstellt.
Wir beginnen mit der Deklaration des Arrays, das den Spaltenüberschriften entspricht. Da es sich um Text handelt, sind sie vom Typ String . Darunter deklarieren wir das zweidimensionale Array, das den Daten entspricht, die in jeder Zeile der Tabelle angezeigt werden. Die Array- Deklaration sieht folgendermaßen aus:
private String [] columnheads={„Vorname“, „Nachname“, „Geschlecht“, „Alter“} ;
private Zeichenfolge [] [] userData={
{„Adriana“, „Halt“, „F“, „21“},
{«John», «Calamaro», «M», «40»},
{«Rosalía», «Bernard», « F « , « 67 « },
{„Juliana“, „Perez“, „F“, „36“},
{„Israel“, „González“, „M“, „36“}
};
In diesem Code haben wir das Array , das die Namen der Spalten enthält, „cabezadasColumnas“ und „dataUsers“ das zweidimensionale Array genannt, das die Daten der fünf Benutzer enthält, die in die Tabelle aufgenommen werden.
Nachdem wir nun die Daten haben, die die JTable anzeigen soll, fahren wir mit der Verwendung des Konstruktors fort, um diese Daten an die JTable zu übergeben . Wir tun dies innerhalb des Rahmens, den wir zuvor geschaffen haben. Wir müssen unserer Tabelle einen Namen geben, also nennen wir sie für dieses Beispiel userTable:
JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;
So fügen Sie Bildlaufleisten und Zentrierung hinzu
An dieser Stelle haben wir bereits eine JTable , die eine einfache Tabelle mit 4 Spalten und 6 Zeilen zeigt, die eine erste Zeile mit den Spaltenüberschriften hat, gefolgt von 5 Zeilen mit den Daten von 5 Benutzern. Diese Tabelle passt jedoch möglicherweise nicht in den 700 x 500-Rahmen, den wir zu Beginn erstellt haben, oder wenn sie jetzt passt, fügen wir ihr später möglicherweise Daten über weitere Benutzer hinzu, und sie passt möglicherweise nicht mehr. In diesem Fall ist es sinnvoll, Bildlaufleisten hinzuzufügen, um sicherzustellen, dass alle Informationen in der Tabelle sichtbar sind.
Wir tun dies über JScrollPane . Darüber hinaus ist es auch bequem, die Position unseres Tisches innerhalb des Rahmens anzugeben. Dazu verwenden wir BorderLayout wie folgt:
add(new JScrollPane(userTable), BorderLayout.CENTER) ;
der endgültige Code
Nachdem alle Teile zum Code hinzugefügt wurden, sollte es so aussehen:
öffentliche Klasse JTable_Use {
public static void main(String[] args) {
JFrame myframe=new TableFrame() ;
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
myframe.setVisible(true) ;
}
}
Klasse TableFrame erweitert JFrame {
öffentliches TableFrame() {
setTitle(„Benutzerdaten“) ;
setBounds(200.200.500.500) ;
JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;
add(new JScrollPane(userTable), BorderLayout.CENTER) ;
}
private String [] columnheads={„Vorname“, „Nachname“, „Geschlecht“, „Alter“} ;
private Zeichenfolge [] [] userData={
{„Adriana“, „Halt“, „F“, „21“},
{«John», «Calamaro», «M», «40»},
{«Rosalía», «Bernard», « F « , « 67 « },
{„Juliana“, „Perez“, „F“, „36“},
{„Israel“, „González“, „M“, „36“}
};
}
Wie füge ich weitere Funktionen hinzu?
Zusätzlich zur Bildlaufleiste können Sie mit JTable endlose Funktionen für verschiedene Anwendungen hinzufügen. Sie können dem Benutzer die Möglichkeit hinzufügen, die Zeilen nach Ihren Wünschen anzuordnen, Sie können das Erscheinungsbild der Tabelle ändern, indem Sie die Hintergrundfarben der Zellen ändern, die Ränder anzeigen oder nicht anzeigen und so weiter.
Verweise
Abellán, J. (2007a, 4. Februar). Beispiel eines TableModel-Applets für JTable. Abgerufen von http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php
Abellán, J. (2007b, 4. Februar). Beispiel für TableModel in JTable. Abgerufen von http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php
Computerpillen [pildorasinformaticas]. (2017, 20. September). Java-Kurs Anhänge III. JTabelle I. Video 267 [Videodatei]. Wiederhergestellt von https://www.youtube.com/watch?v=yH_g6QGFqes
Sensei, J. (2011, 24. Januar). So wählen Sie eine Zeile aus einer Java JTable aus. Abgerufen am 13. September 2021 von http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html