Bonjour,
J'ai un souci de rafraichissement de la JTable après l'insertion. d'une ligne.
La table est placée dans une JScrollPane, qui est placée dans une JPanel et qui à son tour est mise dans une JFrame.
Au démarrage, l'appli va chercher les les données via l'objet qui gère la transaction avec la base.
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 public class Table extends JPanel implements Observer .... cols = data_model.getHeaders(); Vector rows = data_model.getRows(); table_model = new DefaultTableModel(rows, cols); jTable = new JTable(table_model); // CA SE PASS BIEN JUSQU'ICI ... public void update(Observable ov, Object arg) { this.new_data = (Vector) arg; jTable.addRow(new_data); jTable.repaint(); jTable.validate(); } }
En cliquant sur le menu, j'ouvre une fenêtre permettant d'insérer une nouvelle ligne dans la jtable et également dans la base toujours en passant par l'objet qui gère la transaction à la base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public class BaseDonnees extends Observable
Quand des nouvelles données sont insérées, elles sont bien récupérées dans la méthode
Mais le probleme c'est que la jtable ne bouge pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public void update(Observable ov, Object arg)
J'ai aussi essayé dans la méthode "update"
mais ça marche toujours pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 table_model.addRow(new_data); //j'ai aussi essayé table_model.insertRow(unIndex,new_data); jTable.setModel(table_model);
En débuguant, je vois que "table_model" contient bien les nouvelles données mais elles n'apparaissement pas dans la jtable.
Avez vous une idée?
Merci d'avance
Partager