Actualisation de JTable et RowSorter
Bonjour,
eh oui, encore un pépin avec mes JTables :aie:
Cette fois, j'ai isolé l'erreur tout seul (j'y ai passé la journée entière).
En fait, j'ai un model pour ma JTable contenant entre autre la fonction update.
Cette fonction update récupère des informations dans une bdd, et ensuite actualise la liste utilisée par getValuAt.
Cela marchait très bien avant qu'il y ai un tri.
Quand il y avait une ligne en moins, elle disparaissait et il n'y avait aucun pb dans ma JTable.
Je vous passe les détails, toujours est-il que j'ai fini par trouvé la source de multiples bugs ... En fait, getValuAt était appelé pour une ligne qui n'existe plus
voici la preuve :
code :
Code:
1 2 3 4
| public Object getValueAt(int row, int col) {
// ...
System.out.println("Index de ligne demandée : "+row+" et taille du model = "+ls.size());
// ... |
et résultat après utilisation :
Index de ligne demandée : 6 et taille du model = 2
et puisque que le bug disparait quand je vire le sorter, j'en déduis que c'est le sorter qui s'imagine qu'il existe encore 6lignes alors qu'il n'y en à plus que 2 ...
J'ai bien remarqué la méthode setModel de la classe rowSorter, mais n'y a-t-il pas plus léger ?
voici le code pour le rowSorter :
Code:
1 2 3 4 5 6 7
|
t=JModelScreenActivity.create(this, Connect.getProcessor().popListActivities(m), m);
TableRowSorter<JModelScreenActivity> sorter = new TableRowSorter<JModelScreenActivity>((JModelScreenActivity) t.getModel());
t.setRowSorter(sorter); |
Voilà, quelle est la meilleure solution à adopter pour ce cas ?
peut-être faut-il procéder autrement à la création du rowSorter ?
ou sinon il faudrait "actualiser" le rowSorter, mais ne connaissant pas trop les principes ...
Merci d'avance.