2010-06-01 6 views
0

J'ai cette JTable sur mon application Swing avec autoCreateRowSorter activé. Ma table a seulement 3 colonnes, deux chaînes et un int, cela fonctionne bien pour tous quand je clique sur les en-têtes de colonne.État initial de autoCreateRowSorter dans Swing JTable

Cependant, je cherche une façon de le faire par programme. Je voulais définir "l'état initial" pour cette table. Avec l'apparence de Windows, l'en-tête de colonne (lorsqu'il est trié) a une petite flèche indiquant l'ordre de tri. Mais au démarrage qui ne s'affiche pas, je dois faire un premier clic.

Comment puis-je faire cela par code?

Répondre

1

Pour trier programaticallly la table que vous pouvez faire quelque chose comme:

DefaultRowSorter sorter = ((DefaultRowSorter)table.getRowSorter()); 
ArrayList list = new ArrayList(); 
list.add(new RowSorter.SortKey(0, SortOrder.ASCENDING)); 
sorter.setSortKeys(list); 
sorter.sort(); 
+0

Tant de lignes pour une chose si simple, je déteste Java lol. Merci :) –

+0

@Nazgulled il ya toujours un chemin plus long pour atteindre des objectifs simples :-) Voir le Richard pour la version la plus courte dans le noyau. JXTable a api de commodité sur le niveau de la table pour une solution encore plus courte – kleopatra

1

Je pense que DefaultRowSorter#toggleSortOrder(int column) fera le travail

1

Vous ne même pas besoin de l'interface DefaultRowSorter.

table.getRowSorter().toggleSortOrder(column); 

fonctionne aussi bien.

Questions connexes