Probleme recuperation JcomboBox

goulvena29 Messages postés 6 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 14 juin 2010 - 10 mai 2010 à 17:36
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 10 mai 2010 à 18:49
Bonjour,

Je dois creer une petite interface qui demande à l'utilisateur sa date de naissance. Pour cela j'ai créé 2 Combo (annee et mois) et des JButton pour les jours. Mon probleme est que lorsque je veux recuperer la valeur des combo ( getSelectedIndex()) j'ai toujours la valeur de depart comme si il ne detecter pas l'action ou le changement de valeur.
J'ai deja utilisé des JComboBox mais je n'ai jamais eu ce souci...
Merci de votre aide.

Bout de mon code :

String[] Stringmois = {"Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre"};
String[] Stringannee = {"1949","1950","1951","1952"};
JComboBox jComboBox1 = new JComboBox(Stringmois);
JComboBox jComboBox2 = new JComboBox(Stringannee);
JPanel panel = new JPanel();

jComboBox1.setFont(new java.awt.Font("Comic Sans MS", Font.PLAIN, 30));
jComboBox1.setBounds(10*largeurEcran/100, 34*hauteurEcran/100, 200, taille);
jComboBox1.setEditable(false);

jComboBox2.setFont(new java.awt.Font("Comic Sans MS", Font.PLAIN, 30));
jComboBox2.setBounds(10*largeurEcran/100+delta+230, 34*hauteurEcran/100, 120, taille);
jComboBox2.setEditable(false);
jComboBox2.setSelectedIndex(31);


panel.add(jComboBox1);
panel.add(jComboBox2);

jComboBox1.addItemListener(this);
jComboBox1.addActionListener(this);
jComboBox2.addItemListener(this);
jComboBox2.addActionListener(this);

public void actionPerformed(ActionEvent arg0) {
Object src = arg0.getSource();
moisItem = jComboBox1.getSelectedIndex();
anneeItem = jComboBox2.getSelectedIndex();
System.out.println(moisItem+" "+anneeItem);
}

public void itemStateChanged(ItemEvent arg0) {
Object src = arg0.getSource();
Object src = arg0.getSource();
moisItem = jComboBox1.getSelectedIndex();
anneeItem = jComboBox2.getSelectedIndex();
System.out.println(moisItem+" "+anneeItem);
}

1 réponse

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 mai 2010 à 18:49
Salut,

Attention au itemStateChanged : il est appelé 2 fois lors de la modification de la sélection : à la dé-sélection puis à la sélection.

Il faut tester l'état de l'item :
public void itemStateChanged(ItemEvent arg0) { 
  if (arg0.getStateChange() == ItemEvent.SELECTED) { 
    moisItem = jComboBox1.getSelectedIndex(); 
    anneeItem = jComboBox2.getSelectedIndex(); 
    System.out.println(moisItem+" "+anneeItem); 
  }
}

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Rejoignez-nous