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 :

JComboBox afficher valeur id


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut JComboBox afficher valeur id
    Bonjour , j'utilise Java swing et un composant menu déroulant JComboBox.
    Maintenant , cette liste m'affiche des noms de personne. mais j'aimerais qu'il me retourne l'ID de la personne.

    Admettons je veux faire

    1=> Remi
    2=> Julien

    La liste va afficher Remi , Julien mais j'aimerais qu'il me retourne 1 ou 2 quand je clique le bouton.

    http://java.sun.com/docs/books/tutor.../combobox.html

    Je ne vois pas de getValue mais seulement getValue.
    Et je ne sais pas comment initialiser ce menu déroulant à "double entrée".
    J'imagine qu'il faille utiliser setSelectedItem et getSelectedItem de ComboBoxModel.

    merci.

  2. #2
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    ou sinon, je vois qu'on peut utiliser des Item mais je n'arrive pas à recupérer la valeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      date = "lundi 26 mai";
                item = new Item(1, date);
                item.setValue("123");
                filterDateComboBox.addItem( item );
    mais ensuite je ne sais pas comment récupérer la value !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      date =  ( listeInvites.dateRadioButton.isSelected()) ? (listeInvites.filterDateComboBox.getSelectedItem().toString())  : "0";
    Me récupère lundi 26 mai au lieu de 123.

  3. #3
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Salut,

    En fait tu peux mettre n'importe quel objet dans une JComboBox. Tu peux soit utiliser une renderer pour gérer l'affichage, soit, si l'affichage consiste seulement en du texte, redéfinir la méthode toString() qui sera la chaine afficher dans la liste de la combo.

    j'écris le code de mémoire.

    Ma classe qui gère mon problème :
    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 NomID {
     
         private String nom;
         private int id;
     
         // écrire ensuite les constructeurs/accesseurs/manipulateurs
     
         // on redéfinit toString qui renverra le nom, afin qu'il
         // s'affiche dans la combo (ou on écrit un renderer)
         public String toString() {
              return nom;
         }
    }
    Ajouter les items à la combo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    JComboBox combo = new JComboBox();
    NomID nom1 = new NomID("Zeus", 11);
    NomID nom2 = new NomID("Poseidon", 17);
    combo.addItem(nom1);
    combo.addItem(nom2);
    Récupérer l'ID sélectionné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomID nomSelection = (NomID) combo.getSelectedItem();

  4. #4
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    J'ai une question concernant ton code.
    qu'est ce qui me dit ou fait que ici dans ce code c'est Zeus et Poseidon qui sera affiché dans la liste?

    NewClass
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    import java.awt.event.ActionEvent;
     
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JList;
     
    public class NewClass {
     
     
       static  JComboBox combo;
     
      public static void main(String[] a) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        combo = new JComboBox();
        NomID nom1 = new NomID("Zeus", 11);
        NomID nom2 = new NomID("Poseidon", 17);
        combo.addItem(nom1);
        combo.addItem(nom2);
     
        JButton jButton1 = new JButton();
     
     
        jButton1.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            NomID nomSelection = (NomID) combo.getSelectedItem();
            System.out.println(nomSelection);
          }
        });
     
     
        frame.add(jButton1);
        frame.add(combo);
     
     
        frame.setSize(300, 200);
        frame.setVisible(true);
      }
     
    }
    NomID
    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
    29
    30
    31
    32
    33
    34
    public class NomID {
     
        public NomID(String nom, int id) {
            this.nom = nom;
            this.id = id;
        }
     
        public int getId() {
            return id;
        }
     
        public void setId(int id) {
            this.id = id;
        }
     
        public String getNom() {
            return nom;
        }
     
        public void setNom(String nom) {
            this.nom = nom;
        }
     
         private String nom;
         private int id;
     
         // écrire ensuite les constructeurs/accesseurs/manipulateurs
     
         // on redéfinit toString qui renverra le nom, afin qu'il
         // s'affiche dans la combo (ou on écrit un renderer)
         public String toString() {
              return new Integer(id).toString();
         }
    }
    Je ne parviens pas à :
    afficher dans le menu déroulant le nom du dieu et récupérer son id.

  5. #5
    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
    Et si tu veux faire encore plus propre tu vires le toString de la classe NomId et tu écris un renderer digne de ce nom pour ta JComboBox

    http://java.sun.com/docs/books/tutor....html#renderer

  6. #6
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    le Renderer ne concerne pas un tableau? ou les couleurs?
    Je n'arrive pas à l'utiliser.
    Pourtant je pensais que KEY => VALUE serait facile et classique

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

Discussions similaires

  1. JCombobox problème valeur affichée
    Par alfhcg dans le forum Composants
    Réponses: 4
    Dernier message: 24/10/2012, 15h52
  2. Afficher valeur vector sans doublon
    Par splouf dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 18/12/2006, 16h02
  3. [PHP-JS] Afficher valeur booleen
    Par taki_38 dans le forum Langage
    Réponses: 3
    Dernier message: 13/07/2006, 11h02
  4. Jcombobox suppression valeur
    Par lazzeroni dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 12/05/2006, 16h48
  5. afficher valeur de max()
    Par bobic dans le forum ASP
    Réponses: 2
    Dernier message: 07/09/2005, 14h00

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