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(Vector) pour remplir les items


Sujet :

Composants Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut JComboBox(Vector) pour remplir les items
    Bonjour ,
    J'essaie de remplacer les items par défaut de mon JComboBox par les valeurs obtenues par une requete sql sur la base.La connexion se passe bien et j'arrive même à mes fins. En utilisant le constructuer vide de mon JComboBox et en faisant un monJcomboBox.add(resultat).

    Mon problème est quand j'essaie d'utiliser le constructeur JComboBox qui prend pour argument un Vector.J'ai les items par défaut item1,2 etc...
    alors que la requete se fait bien mais l'affectation ne se fait pas.Pour l'instant je vais utiliser la première méthode mais si quelqu'un pouvait m'expliquer mon
    erreur ce serait sympa voici mon code :

    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
    
     public AfficheChoix2() {
            initComponents();
                 try {
                    
            // Connection à la base de données
                     maListe = new Vector(10) ;
                      jComboBox1 = new JComboBox(maListe) ;
            essai = new TestBdd() ;
            requete = "select Nom from relicence" ;
           ResultSet resultat = essai.interrogerBdd(requete) ;
            while (resultat.next())
            {
             String res = resultat.getString("Nom") ;
                maListe.addElement(res);
                System.out.println(res);
             }
           essai.closeBdd() ;
          // Affichage du vector
           System.out.println("Affichage du vector") ;
           for (int i=0;i<maListe.size();i++)
           {
               System.out.println(maListe.elementAt(i)) ;
           }
           
        }
            catch (Exception e ) {
                System.out.println("Une erreur est survenue") ;
            }
        }

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, il faut ajouter tes éléments dans le Vector avant de déclarer le JComboBox.
    Sinon je te conseille d'utiliser un DefaultComboBoxModel pour manipuler les données plus facilement.

  3. #3
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Il faut affecter ta liste à la combo seulement quand la liste est complète.

    Met ça à la fin : jComboBox1 = new JComboBox(maListe);.

    La JComboBox ne conserve pas de référence sur ton vector (au passage tu devrais utiliser une ArrayList plutôt que Vector).

    EDIT: Marre d'être grillé à chaque fois aujourd'hui
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    Merci d'avoir répondu aussi vite, je crois que j'ai compris.
    Je poste mon code plus bas, j'ai mis jComboBox1 = new JComboBox(maListe);.
    après que le vector soit rempli .Mais par contre vous me confirmer qu' il faut quand même utiliser la méthode addItem.
    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
    
      public AfficheChoix2() {
            initComponents();
            setDefaultCloseOperation(HIDE_ON_CLOSE) ;
                 try {
                    
            // Connection à la base de données
                     maListe = new Vector() ;
                     
            essai = new TestBdd() ;
        
            requete = "select Nom from relicence" ;
           ResultSet resultat = essai.interrogerBdd(requete) ;
            while (resultat.next())
            {
             String res = resultat.getString("Nom") ;
                maListe.addElement(res);        
                jComboBox1.addItem(res) ;
                System.out.println(res);
             }
               jComboBox1 = new JComboBox(maListe) ;
           essai.closeBdd() ;
          // Affichage du vector
         /*  System.out.println("Affichage du vector") ;
           for (int i=0;i<maListe.size();i++)
           {
               String r = (String)maListe.elementAt(i) ;
               jComboBox1.addItem(r) ;
           } */
           
            
        }
            catch (Exception e ) {
                System.out.println("Une erreur est survenue") ;
            }
    Merci beaucoup

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 179
    Points : 216
    Points
    216
    Par défaut
    Citation Envoyé par une_tite_question Voir le message
    Mais par contre vous me confirmer qu' il faut quand même utiliser la méthode addItem.
    Non, c'est l'un ou l'autre.
    Soit tu utilises addItem() tout seul, soit tu construis ta liste puis tu l'affectes à ta ComboBox.

    Dans l'exemple que tu donnes, tu ajoutes tes items une premières fois, puis tu détruis ta combobox pour en créer une nouvelle avec ta liste.

    Fred
    Fred

Discussions similaires

  1. TDC; problème pour afficher les items
    Par elise1983 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/10/2007, 15h17
  2. Réponses: 1
    Dernier message: 21/07/2006, 05h56
  3. Réponses: 8
    Dernier message: 29/06/2006, 15h37
  4. Probleme de requete pour remplir les champs d'une table
    Par Jim_Nastiq dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/04/2006, 14h56
  5. Réponses: 6
    Dernier message: 24/01/2005, 14h12

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