Tabla de Contenidos
Une JTable est une classe utilisée en Java pour créer des tableaux interactifs pouvant être édités par les utilisateurs grâce aux composants Swing API de ce langage de programmation. Il se compose essentiellement d’une interface graphique qui vous permet de représenter des données sous forme de tableau, vous permettant de visualiser et d’interagir avec les données affichées par l’interface graphique de différentes manières, y compris, entre autres, l’édition du contenu des tableaux, la modification les dimensions des colonnes et des lignes, en ordonnant les différentes colonnes à volonté.
Créer une JTable simple
Cet exemple cherche à construire une table simple avec les informations suivantes :
Prénom | Le nom | Sexe | Âge |
Adrien | Arrêt | F | vingt-et-un |
Juan | calmar | m | 40 |
rosalia | bernard | F | 67 |
Juliana | perez | F | 36 |
Israël | gonzalez | m | 36 |
Ce tableau sera affiché dans une fenêtre avec une barre de défilement. Lorsque vous utilisez une JTable pour présenter des données sous forme de tableau, nous devons tenir compte du fait que la JTable n’est que l’interface graphique et qu’elle ne contient pas les données à présenter. Ces données doivent être incluses dans la classe du modèle. En d’autres termes, pour que notre table puisse afficher n’importe quelle donnée, nous devons d’abord instancier un modèle de données, puis passer ce modèle à la JTable à l’aide du constructeur.
Création d’un cadre
Nous devons tenir compte du fait que le JTable a besoin d’un cadre dans lequel il peut être affiché, donc celui-ci doit être créé en premier, et inclure des informations telles que la position et les dimensions du cadre, ainsi que spécifier si le cadre sera affiché ou non .
Un code générique pour y parvenir serait:
classe publique JTable_Use {
Public static void main(String[] args) {
JFrame myframe=new TableFrame() ;
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
myframe.setVisible(true) ;
}
}
la classe TableFrame étend JFrame {
public TableFrame() {
setTitle(« Données utilisateur ») ;
setBounds(200,200,700,500) ;
}
}
Le code ci-dessus crée un cadre visible situé à la position 200×200 et aux dimensions 700×500 avec le titre User Data.
Maintenant, nous allons créer une table qui contiendra des données sur les utilisateurs. Ces données comprendront, pour les besoins de cet exemple, le prénom, le nom, le sexe et l’âge.
Il existe plusieurs constructeurs que nous pouvons utiliser pour ajouter les données à la table que nous créons. L’un des constructeurs les plus simples permet de prendre deux tableaux de données en arguments :
JTable(Object[] [] rowData, Object[] columnNames)
Comme vous pouvez le voir, il s’agit d’un constructeur simple pour JTable qui prend comme argument un premier paramètre qui est un tableau à deux dimensions de type Object dans lequel les données correspondant à chaque ligne seront incluses ( rowData ), et un deuxième paramètre qui a également c’est un tableau mais à une dimension, également de type Object , dans lequel seront inclus les en-têtes ou les noms des colonnes ( columnName ).
En bref, si nous voulons utiliser ce constructeur, nous devons déclarer deux tableaux , un à deux dimensions et un à une dimension. Nous faisons cela à l’intérieur de la classe qui construit le framework présenté ci-dessus.
Nous allons commencer par déclarer le tableau correspondant aux en-têtes de colonnes. Puisqu’il s’agit de texte, ils seront de type String . En dessous, nous déclarerons le tableau à deux dimensions correspondant aux données qui seront affichées dans chaque ligne du tableau. La déclaration de tableau ressemble à ceci :
private String [] columnheads={« Prénom », « Nom », « Sexe », « Âge »} ;
Chaîne privée [] [] userData={
{« Adriane », « Arrête », « F », « 21 »},
{«Jean», «Calamaro», «M», «40»},
{«Rosalía», «Bernard», « Fa « , « 67 « },
{« Juliana », « Pérez », « F », « 36 »},
{« Israël », « González », « M », « 36 »}
} ;
Dans ce code, nous avons nommé le tableau qui contient les noms des colonnes « cabezadasColumnas » et « dataUsers » le tableau à deux dimensions qui contient les données des cinq utilisateurs qui seront inclus dans le tableau.
Maintenant que nous avons les données que nous voulons que la JTable affiche, nous passons à l’utilisation du constructeur pour transmettre ces données à la JTable . Nous le faisons dans le cadre que nous avons créé précédemment. Nous devons donner un nom à notre table, nous l’appellerons donc, pour cet exemple, userTable :
JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;
Comment ajouter des barres de défilement et le centrage
À ce stade, nous avons déjà un JTable qui affiche un tableau simple avec 4 colonnes et 6 lignes, qui a une première ligne avec les en-têtes de colonne suivie de 5 lignes avec les données de 5 utilisateurs. Cependant, ce tableau peut ne pas tenir dans le cadre 700 x 500 que nous avons créé au début, ou s’il s’adapte maintenant, nous pouvons ajouter ultérieurement des données sur d’autres utilisateurs et il peut éventuellement ne pas s’adapter. Dans ce cas, il est utile d’ajouter des barres de défilement pour s’assurer que toutes les informations du tableau sont visibles.
Nous le faisons via JScrollPane . De plus, il est également pratique de spécifier la position de notre table dans le cadre. Pour cela, nous utilisons BorderLayout , comme suit :
add(new JScrollPane(userTable), BorderLayout.CENTER) ;
le dernier code
Après avoir ajouté toutes les parties au code, cela devrait ressembler à ceci :
classe publique JTable_Use {
public static void main(String[] args) {
JFrame myframe=new TableFrame() ;
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
myframe.setVisible(true) ;
}
}
la classe TableFrame étend JFrame {
public TableFrame() {
setTitle(« Données utilisateur ») ;
setBounds(200,200,500,500) ;
JTable tablaUsuarios=new JTable(dataUsers, headersColumns) ;
add(new JScrollPane(userTable), BorderLayout.CENTER) ;
}
private String [] columnheads={« Prénom », « Nom », « Sexe », « Âge »} ;
Chaîne privée [] [] userData={
{« Adriane », « Arrête », « F », « 21 »},
{«Jean», «Calamaro», «M», «40»},
{«Rosalía», «Bernard», « Fa « , « 67 « },
{« Juliana », « Pérez », « F », « 36 »},
{« Israël », « González », « M », « 36 »}
} ;
}
Comment ajouter d’autres fonctions ?
En plus de la barre de défilement, JTable vous permet d’ajouter des fonctions infinies pour différentes applications. Vous pouvez ajouter la possibilité pour l’utilisateur d’ordonner les lignes à votre guise, vous pouvez modifier l’apparence du tableau en modifiant les couleurs de fond des cellules, en affichant ou non les bordures, etc.
Les références
Abellán, J. (2007a, 4 février). Exemple d’applet TableModel pour JTable. Extrait de http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php
Abellán, J. (2007b, 4 février). Exemple de TableModel dans JTable. Extrait de http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php
Pilules informatiques [pildorasinformaticas]. (2017, 20 septembre). cours de java Annexes III. JTable I. Vidéo 267 [Fichier vidéo]. Récupéré de https://www.youtube.com/watch?v=yH_g6QGFqes
Sensei, J. (2011, 24 janvier). Comment sélectionner une ligne à partir d’un Java JTable. Extrait le 13 septembre 2021 de http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html