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

Composants Java Discussion :

[JList] trier le contenu d'une JList


Sujet :

Composants Java

  1. #1
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut [JList] trier le contenu d'une JList
    Une question que je me pose : Il n'existe pas de methodes toutes faites pour trier par ordre alphabetique le contenu d'une JList ?
    J'ai vu des exemples mais ou il faut tout implementer soit meme ....

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Il faut passer par le modèle de données. Quel modèle utilises-tu ?

    a++

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Quel modèle utilises-tu ?
    heuu .... celui avec un rectangle blanc et un surlignage bleu ?

    non blague a part allez y molo, je suis pas sous java depuis longtemps
    J'ai du mal avec les termes specifiques :p
    Je sais mes 10ans de delphi donne l'impression de m'y connaitre mais c'est que theorique

  4. #4
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Quand on connait pas trop en Java, mais qu'on en a entendu parler, et qu'on a déjà un background, le mieux c'est le Java Tutorial.

    Les tutoriaux developez.com sont bien aussi, bien sûr, mais le java tutorial me parait bien plus complet et bien mieux organisé.

    Sur les listes : How to Use Lists. (mais rien sur le classement par ordre alphabétique).

    Pour le classement lui même, il faudra probablement, comme le dis adiGuba, que tu travailles à partir du modèle, et ce sera plus facile de t'expliquer une fois que tu auras lu le lien indiqué plus haut.

    Ton modèle sera possiblement construit sur une ArrayList, que tu pourras classer en faisant simplement java.util.Arrays.sort(...). Et pour les choses plus élaborées, tout est expliqué, dans le Java Tutorial bien sûr, à Comparing Strings.

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Le ListModel est la classe qui contient les données et qui les fournit à la JList (qui se contente de gérer l'affichage).

    Ainsi si tu veux modifier les données il faut passer par un ListModel...


    Je suppose que tu dois utiliser la JList avec son constructeur prenant un Vector ou un tableau. Le problème est que le ListModel alors utilisé n'est pas très pratique (on ne peux pas vraiment le manipuler comme on veut).


    Donc le mieux serait d'utiliser ton propre ListModel. Le plus simple serait d'hériter de AbstractListModel qui gère déjà les mécanismes d'évènement (il suffit juste d'appeler les méthode fireXXX() lorsque on modifie les données).

    Exemple basique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public class ArrayListModel extends AbstractListModel {
     
    	private List data = new ArrayList();
     
    	public Object getElementAt(int index) {
    		return this.data.get(index);
    	}
     
    	public int getSize() {
    		return this.data.size();
    	}
     
    	public void add(Object element) {
    		// On ajoute un élément à la liste :
    		this.data.add(element);
    		// On envoi un évenement pour signaler l'ajout :
    		fireIntervalAdded(this, this.getSize(), this.getSize());
    	}
     
    	public void sort() {
    		// On trie les données :
    		Collections.sort(this.data);
    		// On envoi un évenement pour signaler que les données ont changées :
    		fireContentsChanged(this, 0, this.getSize());
    	}
     
    }

    Ensuite il suffit d'appeler la méthode sort() sur le modèle pour trier le contenu (il faut que les objets de la liste soit comparable - voir la doc de Collections.sort()).

    Bien sûr on peut étendre cette classe afin d'y ajouter tout ce qui est nécessaire

    a++

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Quand on connait pas trop en Java, mais qu'on en a entendu parler, et qu'on a déjà un background, le mieux c'est le Java Tutorial.
    Effectivemetn c'est mon cas : 10 ans de prog Delphi dont plus de 4 annees professionnelles. Java c'est par curiosité et anticipation sur l'avenir.
    Donc tout ce qui est conception, je maitrise pas mal. LEs techniques de codages aussi, tant qu'elles sont proches de celles utilisés par delphi.
    Ce qui me manque surtout c'est la semantique, et m'approprier "l'esprit" java qui est un peu differents sur certains points de Delphi dont l partir "procedural" nous permet certaines choses.
    J'irais jetter un coup d'oeil a ce tuto ...

    Pour le classement lui même, il faudra probablement, comme le dis adiGuba, que tu travailles à partir du modèle, et ce sera plus facile de t'expliquer une fois que tu auras lu le lien indiqué plus haut.
    Ok.
    C'est pas la premiere fois qu'on me parle de modele. Je commence a comprendre un peu ce terme specifique a Java, du moins en autodicdate, je ne l'ai jamais utilisé sous Delphi. Une fois le rapprochement fait avec Delphi plus de soucis

    Je suppose que tu dois utiliser la JList avec son constructeur prenant un Vector ou un tableau. Le problème est que le ListModel alors utilisé n'est pas très pratique (on ne peux pas vraiment le manipuler comme on veut).
    Pas tout a fait mais c'est proche de cela.
    C'est un JDialog, qui dans son constructeur declare et initialise un JList.
    Les donnees sont contenue dans une de mes classes personnelle derivant de Object, avec un tableau d'elements et toutes les methodes Add, loadFromFile, get ... qui vont bien.
    Cette "liste" est transmise a ma frame dialog qui sur un "show" va afficher dans le JList son contenu.
    On n'est pas vraiement dans le cas d'un "model" qui met a jour une "vue" lorsque il est manipulé de l'exterieur.
    Cette liste est une liste qui est chargé au depart de l'applciation et dont on se sert du contenu pour differentes operation sans modification. Sauf dans le cadre de la modification ou creation de la liste, par mon JDialog. Modifier ou creer une liste reviens a sauvegarder la liste modifiee/cree et la charger.


    Donc en fait si j'ai bien compris c'est pas vraiement le JListe qui pose probleme, mais plutot la conception de ma classe "List" qui ne deriverais pas de la bonne classe ....

Discussions similaires

  1. Afficher le contenu d'une JList dans des JTextField
    Par Braksius dans le forum Composants
    Réponses: 3
    Dernier message: 11/08/2012, 17h01
  2. supprimer le contenu d'une JList
    Par info.men dans le forum Débuter
    Réponses: 2
    Dernier message: 18/02/2009, 21h51
  3. recuperer le contenu d'une JList
    Par ashash dans le forum Composants
    Réponses: 2
    Dernier message: 10/12/2006, 15h24
  4. Comment mettre le contenu d'une JList à gauche
    Par Alain15 dans le forum Composants
    Réponses: 1
    Dernier message: 14/11/2006, 18h28
  5. [Kylix] Trier le contenu d'une StringGrid
    Par cmp-france dans le forum EDI
    Réponses: 1
    Dernier message: 01/04/2004, 09h18

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