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 :

jcombobox et objet


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut jcombobox et objet
    BOnjour,
    je voudrais mettre 2 valeurs dans ma jcombobox :
    - un code (clé de table) invisible
    - un libellé
    je vois que dans une Jcombobox on peut mettre des objet, dois je crée une classe avec un code et un libellé?
    qu'est ce qui va s'afficher dans la liste?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    2 solutions:
    - soit tu redéfinis la méthode toString pour qu'elle ne renvoie que le libellé qui sera affiché
    - soit tu crées un renderer qui n'affichera que ton libellé

    Dans les deux cas tu pourras ajouter simplement tes objets à ta combo.

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    euh c'est quoi un renderer svp?
    Comment puis je le faire?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    http://java.sun.com/docs/books/tutor.../combobox.html

    Tu trouveras pas mal d'explications la dedans.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    euh désolé mais chercher dans des centaines de lignes de code pour chacune de mes questions et surtout en anglais sa devient chiant et je perd 90% de temps de productivité, si c'est pour me rnvoyer sur sun c'est pas la peine je sais le faire.

    voici ce que j'ai trouver et que je ne comprend pas du tout c'est du chinois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ComboBoxRenderer renderer = new ComboBoxRenderer();//création d'un renderer
    renderer.setPreferredSize(new Dimension(200, 130));//mettre une taille à un renderer, je ne sias même pas ce que cela représente?
    petList.setRenderer(renderer);//mettre le renderer sur la liste
    petList.setMaximumRowCount(3);// nombre de champ 3 enfin je pense
    comment je peut donc faire mon renderer, franchement ça pourrait être un peut mieux expliquer....

    Merci de votre aide

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Déjà, y a pas des centaines de lignes de codes, faut pas exagérer.
    Ensuite, je t'ai orienté vers les Renderer.
    T'as plus qu'à aller au sous-chapitre concerné.
    Maintenant, si tu comptes faire du développement sans rien chercher et attendre qu'on te ponde le code tout cru, change de boulot.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    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
    28
     
    class ComboBoxRenderer extends JLabel
                           implements ListCellRenderer {
     
        public ComboBoxRenderer() {
            setOpaque(true);
            setHorizontalAlignment(CENTER);
            setVerticalAlignment(CENTER);
        }
     
        /*
         * This method finds the image and text corresponding
         * to the selected value and returns the label, set up
         * to display the text and image.
         */
        public Component getListCellRendererComponent(
                                           JList list,
                                           Object value,
                                           int index,
                                           boolean isSelected,
                                           boolean cellHasFocus) {
            TonObjet objet = (TonObjet)value;
            setText(objet.getLibelle());
     
            return this;
        }
     
    }
    Après il suffit de faire un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tonCombo.setRenderer(new ComboBoxRenderer());

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    je suis donc toujours obiger de créer une nouvelle classe avec 2 attributs chaine ou sinon comment puis-je faire?

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Oui tu crées une classe avec deux attributs chaine, pour ton code et libellé.

    Soit tu utilises la méthode avec renderer, soit tu redéfinis la méthode toString de ta nouvelle classe pour qu'elle ne retourne que le libellé.

  10. #10
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Par défaut
    Citation Envoyé par fr1man
    Oui tu crées une classe avec deux attributs chaine, pour ton code et libellé.
    ou plus simple tu utilise une table de hash, c'est fait pour ca...
    Hashtable<Key,Value>
    ou encore Map, HashMap, HashSet...

    et tu met dans ta combo la valeur associé à la clée...facile nan ??

Discussions similaires

  1. JcomboBox avec objet
    Par fabou3377 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 11/11/2007, 11h02
  2. sélectionner un objet dans un JComboBox
    Par yasmine* dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 26/04/2007, 20h44
  3. [JComboBox] l'Objet selected s'affiche dans le Renderer
    Par grabriel dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 28/03/2007, 14h08
  4. [JComboBox] Récupérer l'objet sélectionné
    Par Terminator dans le forum Composants
    Réponses: 3
    Dernier message: 14/09/2005, 12h29
  5. [jcombobox]l'élément affiché lié à un autre objet
    Par szdavid dans le forum Composants
    Réponses: 3
    Dernier message: 11/05/2004, 10h17

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