Renommer un élément d'une JList

ebii Messages postés 3 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 18 juin 2009 - 8 juin 2009 à 05:17
ebii Messages postés 3 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 18 juin 2009 - 18 juin 2009 à 02:38
Bonjour à tous,

J'ai un petit soucis auquel je suis confronté depuis aujourdhui et auquel je ne trouve pas de solution, j'espere que vous pourrez m'aider :)

J'ajoute des objets dans une DefaultListModel, laquelle est insérée dans une JList. Ma JList affiche donc l'adresse de mes objets.
Cependant je souhaiterai pouvoir afficher un "Titre" pour chacun de ces objets dans la JList à la place de leurs adresses.

Voilà comment se présente la partir correspondante à l'ajout des objets dans ma liste :

        DefaultListModel LM = new DefaultListModel();
        lstOeuvres.setModel(LM);

        Iterator uneOeuvre = lesOeuvres.iterator();
        while (uneOeuvre.hasNext())
        {
            oeuvre monOeuvre = (oeuvre) uneOeuvre.next();
            LM.addElement(monOeuvre);
        }

Or, si je remplace
LM.addElement(monOeuvre) par
LM.addElement(monOeuvre.getTitreOeuvre) je vais effectivement avoir les titres affichés, mais je vais perdre toutes les propriétés de mes objets, ceci ne m'interesse donc pas.

Je cherche donc un moyen de pouvoir afficher le titre de mes objets dans ma JList tout en concervant les propriétés de mes objets.

En esperant que vous puissiez m'aider :)
A bientot!

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
8 juin 2009 à 06:47
Salut,

Il te suffit de surcharger la fonction toString de tes objets qui est utilisée par le JList pour afficher les éléments.
0
ebii Messages postés 3 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 18 juin 2009
8 juin 2009 à 14:11
Merci pour cette réponse. Toutefois étant débutant en Java (sous Netbeans 6.5) je ne suis pas sur de bien saisir ce que tu me proposes, mais si j'ai bien compris, toString() est appelée automatiquement par ma JList pour l'affichage de la liste, et surcharger toString permettrai de modifier la valeur à afficher dans la liste, c'est bien ça ?

Si c'est bien le cas je devrais surcharger toString de manière à retourner monObjet.getTitreObjet je suppose.

Cependant je n'ai pas trouvé les éléments à appeler (la classe de JList ?) pour la surcharge de la méthode. Pourriez-vous m'indiquer où je peux trouver ces informations ?

Merci de votre aide!
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
8 juin 2009 à 16:41
C'est tout à fait cà, mais c'est dans ta classe métier qu'il faut surcharger, pas dans la JList.

Surcharger, ca veut dire redéfinir la fonction function String toString() afin de lui faire renvoyer une valeur de ton choix.
0
ebii Messages postés 3 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 18 juin 2009
18 juin 2009 à 02:38
Merci pour ces réponses, je n'ai malheureusement pas reussi :/
0
Rejoignez-nous