Le tri des lignes en colonnes dans la JTable
Lorsque vous cliquez sur l'en-tête de colonne sur mon JTable, ses trie les lignes par ordre alphabétique. Cela fonctionne pour l'ensemble de mes colonnes, à l'exception d'un seul. Dans cette colonne, les valeurs sont toutes les Chaînes, mais contiennent des nombres. J'ai besoin d'eux pour être triés en fonction de leur valeur décimale et non pas de la chaîne de valeur.
Aucune idée de comment faire cela?
Par "contiennent des nombres" voulez-vous dire une chaîne comme "50 pommes" ou juste un nombre, par exemple "50" avec le type de chaîne?
Les deux réponses correctement, reportez-vous à
Les deux réponses correctement, reportez-vous à
getColumnClass()
. Voir aussi Classe des Littéraux de Runtime-Jetons de Type.OriginalL'auteur user489041 | 2011-06-03
Vous devez vous connecter pour publier un commentaire.
veuillez lire le tutoriel sur JTable qui contient TableRowSorter exemple,
votre réponse est ces codes de lignes, de colonnes d'ensembles de Classe correctement
OriginalL'auteur mKorbel
La ligne par défaut le mode trieuse de trier en fonction de la colonne de la classe. Si la colonne est la classe de l'Objet (par défaut) alors il utilise le
toString()
méthode. Si vous pouvez changer ce que vous mettez dans la colonne de quelque chose qui implémente l'interface Comparable (p. ex. Entier/Double) il pourra utiliser ce comparateur, à la place. Vous devrez également modifier la colonne de la classe sur le modèle de table.Pour ce faire, vous devrez étendre DefaultTableModel (ou de mettre en œuvre AbstractTableModel ou TableModel) et remplacer la getColumnClass() la méthode.
Si vous ne pouvez pas modifier les données qui va dans la colonne (pour une raison quelconque vous souhaitez stocker les chaînes), alors vous devrez modifier le RowSorter pour la table.
OriginalL'auteur Pace