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

 Java Discussion :

Je veux afficher un attribut de l'objet de la JList


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 59
    Par défaut Je veux afficher un attribut de l'objet de la JList
    Bonjour,
    merci pour votre aide.
    Mon problème est simple, j'ai pourtant fait des recherches sur le net mais je n'arrive pas a résoudre sa.

    Je stocke des objets Produit dans un Vector<Produit> que j'ai nommé "liste"

    J'aimerais afficher dans ma liste les objets Produit, donc dans un premier temps j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jListeFrigo.setListData(liste);
    Cependant j'obtiens à l'affichage :

    dao.Produit@182f0db , ...

    Moi j'aimerais afficher les attributs de l'objet comme le Nom dans la liste, mais pouvoir en sélectionnant l'objet(donc son nom dans la liste) récupérer l'objet pour pouvoir le réutiliser par la suite à l'aide d'un listener.

    Je sais pas si je me suis bien fait comprendre.
    Parce que j'ai essayé de recréer un Vector<String> ou j'insère tout les :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste.elementAt(i).getNom();
    Mais aprés je ne récupère que le String Nom et pas l'objet Produit en lui meme!


    Merci de votre réponse.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il te faut créer un Renderer spécifique pour tes objets de type Produit.
    http://java.sun.com/docs/books/tutor....html#renderer

  3. #3
    Membre confirmé

    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut ArrayList mieux
    Salut,

    Je suis pas un expert dans les Vector et je vous conseille d'utiliser ArrayList car les Vector sont dépréciés.

    Essayer d'ajouter les éléments un par un (une boucle for)

    Sinon utiliser les ArrayList qui font le même travail que les Vector

    Exemple :
    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
    
           ArrayList<Product> list= new ArrayList<Product>();
    
           list.add(new Product());
    
           //Pour parcourir la liste for simple:
           for(int i = 0; i<10; i++){
                Product pro = list.get(i);//Do what do you want
           }
          
           //Ou bien for eache
          for(Product  pro: list){
                pro;//Do what do you want
           }
    Voir les faq pour plus d'informations sur les ArrayList

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Citation Envoyé par sinpay Voir le message
    Salut,

    Je suis pas un expert dans les Vector et je vous conseille d'utiliser ArrayList car les Vector sont dépréciés.
    Point 1: La classe Vector n'est pas Dépréciée, il existe juste des collections qui sont mieux faites que celle ci, içl est donc juste déconseillé de l'utiliser. En effet la classe Vector est trop présentes dans l'API java (en particulier au niveau de Swing/AWT) pour pouvoir être dépréciée sans un boulot monstrueux.

    Point 2: je ne vois pas trop ce que cela a à faire avec la présente discussion qui traite de JList.

  5. #5
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Il te faut créer un Renderer spécifique pour tes objets de type Produit.
    http://java.sun.com/docs/books/tutor....html#renderer
    qui est la méthode propre
    où si cela ne dérange pas ton fonctionnement, tu peux surcharger la méthode toString() de ton objet Produit.

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 59
    Par défaut
    Merci vraiment pour votre réactivité. J'ai en effet surchargé le toString() et sa passe bien! C'est ce que je voulais obtenir pour ma liste :

    J'obtiens maintenant dans la liste :

    -test
    -chocolat

    J'ai ajouté un listener sur la liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class MainFrame extends javax.swing.JFrame implements ListSelectionListener {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jListeFrigo.addListSelectionListener(this);
    J'ai un nouveau problème quand j'essaye de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void valueChanged(ListSelectionEvent e) {
            Produit produit = (Produit)(e.getSource());
        }
    La c'est le drame il essaye de caster une JList en Produit, comment je peux récupérer le produit sélectionné alors?

    Concernant le Renderer j'en ai jamais entendu parlé... Qu'est-ce que c'est plus ou moins, car le lien de sinok semble corrompu et meme en cherchant sur la toile j'ai rien trouvé de très clair a ce sujet.

    Double question... lol merci bcp en tout cas

  7. #7
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par Reminouche Voir le message
    Merci vraiment pour votre réactivité. J'ai en effet surchargé le toString() et sa passe bien! C'est ce que je voulais obtenir.

    Concernant le Renderer j'en ai jamais entendu parlé... Qu'est-ce que c'est plus ou moins, car le lien de sinok semble corrompu et meme en cherchant sur la toile j'ai rien trouvé de très clair a ce sujet.
    C'est tout simplement un composant qui va définir l'affichage dans la liste. Tu pourrais utiliser un renderer qui créer un label avec le nom de ton produit pour chaque élément dans la liste. Dans ton cas, surcharger toString() est suffisant, mais dans des cas plus complexes ou on veut par exemple afficher plusieurs informations sur un élément de la liste ou une image par exemple, toString() n'est pas suffisant, il faut utiliser un renderer pour cela.

    Le lien de Sinok marche très bien chez moi...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher la valeur de l'attribut d'un objet
    Par SQUAL dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/12/2011, 09h59
  2. Afficher tous les attributs d'un objet Java
    Par Annsen dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 03/09/2011, 14h37
  3. Listbox contenant des objets, afficher comme texte un attribut de l'objet.
    Par Jean_guy dans le forum Windows Presentation Foundation
    Réponses: 11
    Dernier message: 16/12/2008, 03h30
  4. [Smarty] Afficher les attributs d'un objet
    Par Arnaud62 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 16/05/2008, 17h08
  5. Réponses: 2
    Dernier message: 15/07/2007, 12h43

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