Outils pour utilisateurs

Outils du site


bloc2:prog:poo:jtable

Ceci est une ancienne révision du document !


JTable

Qu'est-ce qu'une JTable ?

Une JTable est un composant graphique qui permet de présenter un ensemble de données sous forme tabulaire.

Cette présentation à visée de consultation pourra donner lieu à mise à jour, suppression, insertion selon les souhaits du développeur. L’ensemble des valeurs présentées proviendra le plus souvent d’instances d’objets dont on obtiendra une représentation tableau.

Déposer une JTable

Dès que l'on dispose d'un container graphique, par exemple, une JFrame, on peut créer une JTable en mode Design:

Déposer une JTable

Paramétrer la JTable

Commencer par adapter le nom de la JTable dans l'onglet code

Une JTable est un composant graphique qui affiche des données sous forme tabulaire. En vertu des principes de structuration du code, les données à afficher dans le JTable ne sont pas portées par la JTable elle-même mais par un composant non graphique spécialisé (un modèle … ça vous rappelle quelque chose …?), ici un DefaultTableModel.

Pour alimenter la JTable en données, il faudra donc créer un attribut de type DefaultTableModel et le paramétrer. C'est le modèle qui fournira la structure des données en colonnes et en lignes.

public class MainWindow{
    private DefaultTableModel tableModel;          // attribut modèle    
    ...
 
    public MainWindow() {
        initComponents();
        tableModel= new DefaultTableModel();       // instanciation du modèle
 
        String header[] = new String[] {"Colonne1", "Colonne2", "Colonne3"};
        tableModel.setColumnIdentifiers(header); // définition des colonnes en nombre et en intitulés
        ...
    }

Remplir ou vider la JTable

Les fonctionnalités essentielles

  • tableModel.addRow(Object[] data): Permet d'ajouter une nouvelle ligne dans le modèle
  • tableModel.setRowCount(0): Permet de vider le modèle, si besoin
  • tableModel.setDataVector​(Object[][] data, Object[] headers): Permet d'alimenter le modèle à partir d'un tableau déjà existant et un tableau des entêtes
  • jtable.setmodel(DefaultTableModel model): associe le modèle et la JTable

Exemple d'usage

tableModel.setRowCount(0);
tableModel.addRow(new Object[]{"Henaff", "Nathan", 19, "Chaptal"});
jTable.setModel(tableModel);

Autre exemple d'usage

Object [][]  data = new Object [][] {
    {"Henaff", "Nathan", 19, "Chaptal"},
    {"Henriot", "Titouan", 20, "Chaptal"},
    {"Le Gars", "Thibault", 18, "Chaptal"}
}
String header[] = new String[] {"Nom", "Prénom", "Age", "Etablissement"};
tableModel.setDataVector(data, headers);
jTable.setModel(tableModel);

Exemple de résultat

bloc2/prog/poo/jtable.1699958497.txt.gz · Dernière modification : 2023/11/14 11:41 de admin