IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[JXtable] trier un tableau


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut [JXtable] trier un tableau
    Bonjour tout le monde
    je veux trier un tableau en utilisant l'interface Comparator
    j'ai trouvé un code qui permet de faire ça:
    (DateComparator : classe qui implemente l'interface Comparator)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		DateComparator numberComparator = new DateComparator();
    		Sorter sorter = this.getColumn(this.getSortedColumn().getModelIndex()).getSorter();
    		sorter.setComparator(numberComparator);
    le probleme c'est que je n'ai pas trouvé la methode getSorter() dans la classe
    TableColumn comme s'est indiqué dans l'exemple..
    j'ai essayé d'autre methode mais ca n'a pas marché.
    Maintenant je suis bloqué et je veux savoir s'il une solution

    Merci d'avance!

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    C'est du Java6.
    Si tu travailles sous Java5 tourne toi vers la librairie SwingX qui a un JTable sortable également.
    Si tu travailles sous Java4, cherche la classe TableSorter.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut
    oui effectivement moi j'utilise Swingx (JXtable)
    mais le probleme c'est que la table fait juste le tri des chaines alors que moi j'ai aussi des dates qui les considérent comme chaine de caractéres ce qui n'est pas logique.
    pour cela j'ai crée la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class DateComparator implements Comparator<String> {
     
    	public int compare(String o1, String o2) {
    		try {
    			Date d1 = new SimpleDateFormat("mm/dd/yyyy").parse(o1);
    			Date d2 = new SimpleDateFormat("mm/dd/yyyy").parse(o2);
    			return d1.compareTo(d2);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return 0;
    	}
    }

    j'ai appliqué ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DateComparator numberComparator = new DateComparator();
    		Sorter sorter = this.getColumnExt(this.getSortedColumn().getModelIndex()).getSorter();
    		sorter.setComparator(numberComparator);
    ce code je l'ai trouvé dans ce site http://www.swinglabs.org/docs/compon...p=4#RowSorting
    mais ca marche pas parce que la methode getSorter() n'existe pas.

    voilà si vous avez des suggestions et merci.

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par ghotique
    mais le probleme c'est que la table fait juste le tri des chaines alors que moi j'ai aussi des dates qui les considérent comme chaine de caractéres ce qui n'est pas logique.
    Ton table model renvoie un représentation String de ta date ou il renvoie l'objet Date dans la méthode getValueAt ?
    Parce que s'il renvoie Date, le sorting est directement OK.
    Il faut juste que tu mettes un renderer sur ta table pour afficher le type Date correctement.

Discussions similaires

  1. [Débutant] Trier un tableau en 2 boucles
    Par SaladinDev dans le forum Assembleur
    Réponses: 9
    Dernier message: 07/05/2005, 22h38
  2. Trier un tableau par rapport à un autre tableau
    Par deaven dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 02/05/2005, 09h27
  3. [Débutant] Remplir et trier un tableau
    Par james-dean dans le forum Assembleur
    Réponses: 15
    Dernier message: 01/05/2005, 17h40
  4. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 00h04
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo