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.

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();
        }
    }
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
 
public class BaseDonnees extends Observable
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.

Quand des nouvelles données sont insérées, elles sont bien récupérées dans la méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
public void update(Observable ov, Object arg)
Mais le probleme c'est que la jtable ne bouge pas.

J'ai aussi essayé dans la méthode "update"
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);
mais ça marche toujours pas.

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