Le trieur de lignes par défaut triera en fonction de la classe de colonne. Si la classe de colonne est Object (valeur par défaut), elle utilise la méthode toString()
. Si vous pouvez changer ce que vous mettez dans la colonne en quelque chose qui implémente l'interface Comparable (par exemple Integer/Double), il utilisera ce comparateur à la place. Vous devrez également modifier la classe de colonnes sur le modèle de table. Pour ce faire, vous devrez étendre DefaultTableModel (ou implémenter AbstractTableModel ou TableModel) et remplacer la méthode getColumnClass().
Si vous ne pouvez pas modifier les données qui vont dans la colonne (pour une raison quelconque, vous voulez stocker des chaînes), alors vous devrez modifier le RowSorter pour la table.
DefaultRowSorter rowSorter = new DefaultRowSorter();
rowSorter.setComparator(numberColumnIndex,numberSortingComparator);
table.setRowSorter(rowSorter);
par « contiennent des nombres » voulez-vous dire une chaîne comme " 50 pommes "ou juste un nombre comme" 50 "avec le type de chaîne? – Tim
Les deux réponses se réfèrent correctement à 'getColumnClass()'. Voir aussi [Littéraux de classe en tant que jetons de type exécution] (http://download.oracle.com/javase/tutorial/extra/generics/literals.html). – trashgod