/ / Le modèle JTable ne fonctionne pas après le tri par colonnes - java, swing, jtable, defaulttablemelel, tablerowsorter

Le modèle JTable ne réfrech pas après le tri par colonnes - java, swing, jtable, defaulttablemodel, tablerowsorter

J'ai un problème lorsque j'essaie de prévisualiser une ligne après avoir trié une colonne.

par exemple : c'est ma table avant de la trier

entrer la description de l'image ici

quand j'essaye de trier par la deuxième colonne, j'obtiens ce résultat qui est normal:

entrer la description de l'image ici

mais quand j'essaie de prévisualiser les détails de la deuxième ligne avec l'ID (A199), je reçois ceux de (A195), qui étaient auparavant la deuxième ligne avant le tri. (J'ai ajouté une action lorsque vous double-cliquez sur une ligne pour avoir un aperçu des détails de la ligne. )

donc mon hypothèse est que le modèle de table n’est pas mis à jour correctement, c’est ce que j’ai essayé:

TableRowSorter<PersonneMoraleSearchTableModel> sorter = new TableRowSorter<PersonneMoraleSearchTableModel>(model);
jTable.setRowSorter(sorter);
List<RowSorter.SortKey> sortKeys = new ArrayList<SortKey>(25);
sortKeys.add(new RowSorter.SortKey(1, SortOrder.ASCENDING));
sorter.setSortKeys(sortKeys);
sorter.setSortsOnUpdates(true);

Toute aide serait appréciée !

Réponses:

1 pour la réponse № 1

Comme le doc dit TableRowSorter se soucie seulement de la vue et non du modèle de la table.

Certaines fonctions sont utilisées dans la description du document pour convertir les index entre modèle et vue dans le cas où une fonction de tri / filtrage (comme dans votre cas) est utilisée.

Essayez de changer le ActionListener pour utiliser ces fonctions et le problème devrait être corrigé.