Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[newbie] JComboBox

2 réponses
Avatar
sergio
Bonsoir,

Il y a un truc qui m'echappe avec le petit bout de code ci dessous:
pourquoi, apres une modif du texte, je recupere 2 fois la meme sortie
sur 'Return', et 1 seule fois sur selection souris ou 'return' sans
modif du texte?

Merci pour vos eclaircissements.

(j2sdk1.4.2)

public static void main(String[] args){
JFrame frame=new JFrame("demo");
frame.setBounds(0,0,400,300);
JPanel panel=new JPanel();

JComboBox combo=new JComboBox();
combo.setEditable(true);
combo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JComboBox cb =(JComboBox)e.getSource();
System.out.println((String)cb.getSelectedItem());
}});

panel.add(combo);
frame.setContentPane(panel);
frame.setVisible(true);

}

2 réponses

Avatar
Averroes
Bonsoir,

Il y a un truc qui m'echappe avec le petit bout de code ci dessous:
pourquoi, apres une modif du texte, je recupere 2 fois la meme sortie
sur 'Return', et 1 seule fois sur selection souris ou 'return' sans
modif du texte?

Merci pour vos eclaircissements.

(j2sdk1.4.2)

public static void main(String[] args){
JFrame frame=new JFrame("demo");
frame.setBounds(0,0,400,300);
JPanel panel=new JPanel();

JComboBox combo=new JComboBox();
combo.setEditable(true);
combo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JComboBox cb =(JComboBox)e.getSource();
System.out.println((String)cb.getSelectedItem());
}});

panel.add(combo);
frame.setContentPane(panel);
frame.setVisible(true);

}




Parce que le listener est activé pour deux evenement l'evenement de
changement de contenu et celui de selection donc deux "fire event". tu
dois filtrer plus tes evenement dans ce cas la est peut etre adopté des
listener moins generique que l'actionlistener.

J'espere que tu es un débutant car ecrit un code comme sa est vraiment
tres sommaire non modulaire et tres mal implementer(solution = inner
class pour les listener,etc..)

Qu'on me corrige si j'ai faux.
--
Moi : "L'ignorance n'est pas une excuse."

Avatar
sergio
Averroes wrote:

Bonsoir,

Il y a un truc qui m'echappe avec le petit bout de code ci dessous:
pourquoi, apres une modif du texte, je recupere 2 fois la meme sortie

sur 'Return', et 1 seule fois sur selection souris ou 'return' sans
modif du texte?


Merci pour vos eclaircissements.




Parce que le listener est activé pour deux evenement l'evenement de
changement de contenu et celui de selection donc deux "fire event". tu
dois filtrer plus tes evenement dans ce cas la est peut etre adopté des
listener moins generique que l'actionlistener.


Merci pour ta reponse, malheureusement elle ne me fait pas beaucoup
avancer. Comment filtrer les evenements? Pourrais tu m' indiquer un bon
ouvrage ou ces questions sont abordees?

J'espere que tu es un débutant car ecrit un code comme sa est vraiment
tres sommaire non modulaire et tres mal implementer(solution = inner
class pour les listener,etc..)

Je confirme que je suis debutant(je le precisais dans le subject) et

pour longtemps encore! Le bout de code (largement extrait du tutorial de
Sun) avait pour seul objectif de supporter ma question.

Neanmoins, ton jugement abrupt (notamment sur l'inner class) meriterait
quelques expications complementaires.
Je n' ai pas l' intention de lancer un troll, mais citer seulement mes
references:
- le tutorial de Sun: Creating a GUI with JFC/Swing (How to use Combo
Boxes)
- Le bouquin 'Le Guide du developpeur Java2' de Saumont et Mirecourt ed
2003 (p 553)
ou cette methode est employee voire recommandee.

Qu'on me corrige si j'ai faux.