Question

Je sais que JTable peut trier sur une seule colonne. Mais est-il possible d'autoriser le tri en plusieurs colonnes ou dois-je écrire le code moi-même?

Était-ce utile?

La solution

Vous pouvez trier sur plusieurs colonnes en spécifiant plusieurs clés de tri lorsque vous appelez setSortKeys dans RowSorter que vous utilisez.

Autres conseils

Recherchez JXTable . JXTable est une extension de JTable qui prend en charge le tri multi-colonnes, ainsi que d'autres fonctions que JTable ne fournit pas. Il est disponible gratuitement auprès de JDNC / SwingLabs.

Vous devriez pouvoir définir le TableRowSorter et le comparateur qui lui sont associés. Exemple:

TableModel myModel = createMyTableModel();
JTable table = new JTable(myModel);
TableRowSorter t = new TableRowSorter(myModel);
t.setComparator(column that the comparator works against, Comparator<?> comparator);
table.setRowSorter(new TableRowSorter(myModel));

ETable de la collection Netbeans.
Il fait partie de org-netbeans-swing-outline.jar
Une recherche google pour la mettre en place. ETable est principalement une base pour Outline (une TreeTable), mais il possède un ordre multi-colonnes intégré ainsi que de nombreuses autres fonctionnalités intéressantes.

"Je sais que Jtable peut trier sur une seule colonne. Mais est-il possible d'autoriser le tri de plusieurs colonnes ou dois-je écrire le code moi-même? "

Le tri et le filtrage des tables sont gérés par un objet de tri. Le moyen le plus simple de fournir un objet de tri consiste à définir la propriété liée autoCreateRowSorter sur true;

JTable table = new JTable();
table.setAutoCreateRowSorter(true);

Cette action définit un trieur de lignes qui est une instance de javax.swing.table.TableRowSorter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top