Tri d'une JTable : conversion des index
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:
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:
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