Bonjour,

J'ai une petite question à propos des JTable.
J'ai une table avec plusieurs colonnes, je voudrais pouvoir trier les colonnes.

Voici mon code pour la création de la table :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
myTable=new JTable ();
TableModel myTableModel =new TableModel();
myTable.setModel(myTableModel);
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(myTableModel);
myTable.setRowSorter(sorter);
 
sorter.setSortsOnUpdates(true);
Mon modèle hérite de AbstractTableModel.

Si je fais juste des opérations de tri sur les colonnes, ça marche très bien.
Le problème, c'est lorsque je modifie la table (insertion/suppression de lignes) après l'avoir triée.

Après quelques recherches, j'ai vu qu'il fallait convertir les index "vue" en index "modèle" et vis versa (convertRowIndexToView ...).
Ma question est : quand faut-il faire cette conversion ?

J'ai beaucoup de code où je fais des :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
myTable.getSelectedRows();
myTable.getSelectedRow();
myTable.getSelectedColumns();
myTable.getSelectedColumn();
myTable.setRowSelectionInterval(row, col);
myTable.setColumnSelectionInterval(row, col);
MyTable.setValueAt(row, col);
MyTable.getValueAt(row, col);
Mes index doivent-ils être modifiés pour toutes ces opérations ou juste pour les opérations liées à la sélection (getSelectedRow(), setRowSelectionInterval(row, col) ...).
Dois-je le faire pour setValueAt(row, col) ?

Tous cela n'est pas très clair pour moi.
En tout cas, merci beaucoup d'avance pour votre aide