JComboBox

cs_manou9 Messages postés 52 Date d'inscription mardi 9 mars 2010 Statut Membre Dernière intervention 30 mars 2011 - 29 mars 2010 à 17:05
cs_manou9 Messages postés 52 Date d'inscription mardi 9 mars 2010 Statut Membre Dernière intervention 30 mars 2011 - 29 mars 2010 à 18:51
Bonjour,
Dans le code ci-dessous ya un probleme , c'est que l'instruction jComboBox2.addItem() se repete 2 fois
jComboBox1.addItemListener((ItemListener) new ItemListener (){
public void itemStateChanged(ItemEvent e){
//jComboBox2.removeAllItems();
String T = jComboBox1.getSelectedItem().toString();

int T1 = Integer.parseInt(T);
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException n) {
System.err.println(n) ;
System.exit (-1) ;
}
try {
Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/my db",
"root",
""
);

String sql1 "SELECT DISTINCT CD FROM candidat WHERE Wilaya"+T1;
Statement stm1 = (Statement) con.createStatement();
ResultSet rst1 = stm1.executeQuery(sql1);
while (rst1.next()){
jComboBox2.setEnabled(true);
int S1 = rst1.getInt("CD");
jComboBox2.addItem(S1);
}


}
catch (java.sql.SQLException n) {
System.err.println(n);
System.exit(-1);
}

}


});

jComboBox2.addItemListener((ItemListener)new ItemListener(){

public void itemStateChanged(ItemEvent x) {

try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException n) {
System.err.println(n) ;
System.exit (-1) ;
}
try {
Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/my db",
"root",
""
);
String T = jComboBox1.getSelectedItem().toString();
int T1 = Integer.parseInt(T);
String C = jComboBox2.getSelectedItem().toString();
int C1 = Integer.parseInt(C);

PreparedStatement mon_statement = (PreparedStatement) con.prepareStatement("INSERT INTO Classement (Num_seq,Nom,Prenom,CG,MAC,MS1,MS2,MS3,Moyenne,Decision)" +
" SELECT Num_seq,Nom,Prenom,CG,MAC,MS1,MS2,MS3,Moyenne,Decision FROM deliberations WHERE Wilaya=" +T1+ " AND CD="+C1);
int r = mon_statement.executeUpdate();
con.close();
}
catch (java.sql.SQLException n) {
System.err.println(n);
System.exit(-1);
}
}

});



ya-t-il un probleme?

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
29 mars 2010 à 17:33
Salut,

Attention avec le ItemChanged : il est appelé à deux reprises, une fois lorsqu'un élément et sélectionné, et une autre fois lorsqu'il est déselectionné, donc lors d'un changement de sélection, il est appelé deux fois : sûrement l'origine de ton problème...

Il faut donc tester le type de sélection qui a déclenché le listener :
public void itemStateChanged(ItemEvent e){ 
if (e.getStateChange() == ItemEvent. SELECTED) {
// évenement de type : nouvelle sélection
// continuer le traîtement
}
}

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
cs_manou9 Messages postés 52 Date d'inscription mardi 9 mars 2010 Statut Membre Dernière intervention 30 mars 2011
29 mars 2010 à 18:51
C'est bon maintenant c'est bien mon probleme, Merci 10000000 fois
0
Rejoignez-nous