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ès que l'on dispose d'un container graphique, par exemple, une JFrame, on peut créer une JTable en mode Design:
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 // définition des colonnes en nombre et en intitulés String header[] = new String[] {"Colonne1", "Colonne2", "Colonne3"}; tableModel.setColumnIdentifiers(header); ... } ... }
| 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 |
tableModel.setRowCount(0); tableModel.addRow(new Object[]{"Henaff", "Nathan", 19, "Chaptal"}); jTable.setModel(tableModel);
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);