IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

[swing][ItemListener]


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 84
    Par défaut [swing][ItemListener]
    Bonjour,

    je me pose une question. C'est pas vraiment un problème, mais je trouve que le comportement est bizarre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    public class Essai extends JFrame implements ItemListener{
     
    	private JComboBox combo;
     
    	public Essai() {
    		try {
    			jbInit();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	private void jbInit() throws Exception {
    		combo=new JComboBox();
    		combo.addItem("UN");
    		combo.addItem("DEUX");
    		this.getContentPane().add(combo);
    		combo.addItemListener(this);
    		this.getContentPane().setLayout(new FlowLayout());
     
    	}
     
    	public void itemStateChanged(ItemEvent e) {
    		if(e.getSource()==combo){
    			System.out.println("combo changed");
    		}
     
    	}	
    }
    En lançant cette classe, on s'aperçoit qu'à chaque modification de l'item, la méthode itemStateChanged est appelée 2 fois.
    Pourquoi ???
    Merci à ceux qui pourront m'expliquer ce comportement

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    En affichant plus d'info de ton ItemEvent, tu aurais surement vu pourquoi...

    Lorsque tu sélectionnes par exemple l'item "DEUX" :
    • - L'item "UN" passe de SELECTED à DESELECTED
      - L'item "DEUX" passe de DESELECTED à SELECTED


    Ce qui fait bien deux changements

    a++

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 84
    Par défaut
    héhé....pas con !
    donc en gros, en ajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		if(e.getSource()==combo && e.getStateChange()==ItemEvent.SELECTED){
    			System.out.println("combo changed");
    		}
    j'arrive à avoir mon event seulement lors de la sélection d'un élément.

    MERCI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Swing]JTable- Dimensionner les colonnes
    Par loutfi dans le forum Composants
    Réponses: 12
    Dernier message: 01/07/2011, 08h50
  2. swing et jbuilder
    Par lassale dans le forum JBuilder
    Réponses: 3
    Dernier message: 31/10/2003, 19h28
  3. [swing] probleme de memoire
    Par leBigouden dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 23/05/2003, 14h19
  4. [SWING]jTable + Focus
    Par chady dans le forum Composants
    Réponses: 5
    Dernier message: 27/02/2003, 14h51
  5. [SWING][FONT] choisir la police par défaut
    Par narmataru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/02/2003, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo