Bonjour,
Je me lance dans le développement java, et je rencontre un problème surement simple mais auquel je n'ai trouvé aucune solution concrète.
J'ai une JTable composée de 2 colonnes (string, bool) que je rempli avec des données venant d'une table. Jusque là pas de soucis, mais j'aimerais qu'au clique d'un bouton, une ligne s'ajoute en première position dans ma table.
voilà l'instanciation de ma table
Ici ma classe héritant de AbstractTableModel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 jtCateg = new JTable(new MyTableModel()); jtCateg.setSize(new Dimension(50, 20)); panDetail.add(jtCateg);
Et pour finir le bouton qui déclenchera l'ajout de la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 class MyTableModel extends AbstractTableModel { private Class[] columnTypes = new Class[] { String.class, Boolean.class }; private String[] columnNames={"Catégorie","Sélection"}; private Object[][] data = movie.getCateg(); //constructeur public MyTableModel(){ } public void addRow(Object[] rowData){ //ici je bloque } //retourne le nombre de colonne public int getColumnCount() { return columnNames.length; } //retourne le nombre de ligne public int getRowCount() { return data.length; } //retourne le nom de la colonne dont l'indice est donné en paramètre public String getColumnName(int col) { return columnNames[col]; } //initialise la valeur d'une cellule dont les coordonnées sont passés en paramètre public Object getValueAt(int row, int col) { return data[row][col]; } //retourne le type de la colonne public Class getColumnClass(int c) { //return getValueAt(0, c).getClass(); return columnTypes[c]; } public boolean isCellEditable(int row, int col) { return true; } }
Voilà mon problème est en fait de savoir comment ajouter une ligne vide à mon tableau contenant les data ? Ce qui ajoutera la ligne sans pour autant recharger mes données?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 btAddCateg.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //appel pour l'ajout de la line } });
De plus est-ce qu'il y a un événement qui se déclenche au changement de ligne après avoir été en édition pour sauver en DB les éventuels changements?
Merci d'avance pour votre aide.
Partager