JCombobox Dynamique

Résolu
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 mars 2008 - 13 févr. 2007 à 12:58
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre 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);
    }

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 févr. 2007 à 15:12
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);
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
13 févr. 2007 à 18:00
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());
0
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 mars 2008
14 févr. 2007 à 15:05
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) ;
   }
0
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 mars 2008
14 févr. 2007 à 15:13
C'est bon c'est réglé merci infiniment
0
Rejoignez-nous