langagec08
Messages postés72Date d'inscriptionmardi 30 mars 2010StatutMembreDernière intervention22 août 2011
-
5 avril 2011 à 13:58
Utilisateur anonyme -
8 avril 2011 à 21:49
bonjour tout le monde , voila mon problème j'ai un JCombobox et je veux que dés que mon utilisateur fasse un choix je récupère le choix qu'il a fait .dans mon code seule la première valeur est retournée et mème je choisi autre chose ça change pas la valeur de ma variable retourné voici mon code :
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Liste extends JComboBox {
public Liste() {}
public Liste(String[] tab) {
super(tab);
setPreferredSize(new Dimension(150,30));
addItemListener(new ItemState());
}
public JPanel definirliste(String lab){
JPanel pan=new JPanel() ;pan.setBackground(Color.WHITE);
JLabel labNom = new JLabel(lab);
pan.add(labNom);
pan.add(this);
return pan ;
}
public String retourneitemlist(){
String lis ;
this.addItemListener(new ItemState());
this.addActionListener(new ItemAction() );
this.addItemListener(new ItemState());
lis = (String) this.getSelectedItem();
return lis ;
}
class ItemState implements ItemListener{
public void itemStateChanged(ItemEvent e) {
}
}
class ItemAction implements ActionListener{
public void actionPerformed(ActionEvent e) {
}
}
}
Est-ce que as mis tout ton code ? Car je me demande comment ça peut tourner avec les méthodes de tes listeners pleines de vides Ou alors je suis passé à côté de quelque chose.
A mon avis tu as fait un peu trop compliqué. D'autant plus qu'il y a des choses dans ton code qui sont un peu choquantes. Par exemple tu appelles deux fois ta méthode "this.addItemListener(new ItemState());"
Dans ta méthode "retourneitemlist()", évite d'attribuer à chaque fois des listeners à ta JComboBox. Tu affectes ces listeners une fois pour toutes quand tu la créée.
Dans quel cas tu veux utiliser ta JComboBox ? Car en fouillant dans du code que j'ai, un simple appel à getSelectedItem() suffit.