JCombobox Dynamique [Résolu]

Messages postés
95
Date d'inscription
mercredi 26 octobre 2005
Dernière intervention
24 mars 2008
- - Dernière réponse : cs_Dellys
Messages postés
95
Date d'inscription
mercredi 26 octobre 2005
Dernière intervention
24 mars 2008
- 14 févr. 2007 à 15:13
Bonjour
voila j'ai deux jCombobox le deuxième dépend du choix du premier ,sur le premier j'affiche la description des éléments (question de présentation) mais pour  que je puisse interagir avec le deuxième il me faut le ID  afin que je puisse l’utilisé  comme paramètre dans le SQL du deuxième ,comment faire pour récupéré non la descrption mais sont ID?




try {
        connec = getConnec();
        Statement reqCDS = connec.createStatement();
        ResultSet ResultCDS = reqCDS.executeQuery(
             "SELECT * FROM taskname  ");


        while(ResultCDS.next()) {


               jComboBox1.addItem(ResultCDS.getString("TASK_ORDER"));
           }
       ResultCDS.close();
    }
    catch(Throwable exception)
    {
    JOptionPane.showMessageDialog(null, "Erreur : "+exception);
    }
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
3
Merci
Ton vecteur indexes est-il bien remplis lorsque tu veux accèder à l'élément ?

Si oui, essaye alors avec :
String num = (String) indexes.get(jComboBox1.getSelectedIndex() + 1);

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 89 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
0
Merci
Il te suffit de stocker les id en parralèle de l'ajout dans ton combo (dans un vector par exemple) :
Vector<Long> indexes = new Vector<Long>();
while(ResultCDS.next()) {                jComboBox1.addItem(ResultCDS.getString("TASK_ORDER"));
indexes.Add(ResultCDS.getLong("id"));
}

ainsi, le selectedindex de ton combobox te permettra de récupèrer l'id correspondant :
indexes.get(jComboBox1.getSelectedIndex());
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
95
Date d'inscription
mercredi 26 octobre 2005
Dernière intervention
24 mars 2008
0
Merci
J'ai essayer ce que vous m'avais montré comme suit :
 
Vector indexes = new Vector();

dans la boucle je récupre le champ id_t_order

 indexes.add(ResultCDS.getString("id_t_order"));
Le problème est dans la récupération du champ dans le deuxiéme jCombobox  j'ai ce message d'erreur : <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0







public void jComboBox1_actionPerformed(ActionEvent e) {




           try {
               String num = (String) indexes.get(jComboBox1.getSelectedIndex());


System.out.println( num );


       connec = getConnec();
       Statement reqCDS = connec.createStatement();
       ResultSet ResultCDS = reqCDS.executeQuery(
       "SELECT * FROM sub_task where order_type ='"+num +"' ");




     while(ResultCDS.next()) {


              jComboBox2.addItem(ResultCDS.getString("TASK_NAME"));
              //indexes.add(ResultCDS.getString("id_t_order"));
               //System.out.println(indexes );
            // int id =(ResultCDS.getInt("id_t_order"));
          }
      ResultCDS.close();
   }
   catch(Throwable exception)
   {
  // JOptionPane.showMessageDialog(null, "Erreur : "+exception);
    System.out.println(exception) ;
   }
Commenter la réponse de cs_Dellys
Messages postés
95
Date d'inscription
mercredi 26 octobre 2005
Dernière intervention
24 mars 2008
0
Merci
C'est bon c'est réglé merci infiniment
Commenter la réponse de cs_Dellys

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.