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 sont apportées par un composant non graphique spécialisé (un modèle), distinct de la JTable, souvent un DefaultTableModel.

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

public class MainWindow{
    private DefaultTableModel tableModel;              
    ...
 
    public MainWindow() {
        initComponents();
        tableModel= new DefaultTableModel();
 
        String header[] = new String[] {"Colonne1", "Colonne2", "Colonne3"};
        tableModel.setColumnIdentifiers(header); // fixe les entêtes de colonnes
        ...
    }

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.1699813197.txt.gz · Dernière modification : 2023/11/12 19:19 de admin