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 :
Mon modèle hérite de AbstractTableModel.
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);
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 :
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) ...).
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);
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
Partager