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

AWT/Swing Java Discussion :

[JComboBox] Problème d'accès et d'écouteurs


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut [JComboBox] Problème d'accès et d'écouteurs
    J'ai un souci avec ma JComboBox.
    Elle a été définie comme ceci :
    JComboBox listederdesmots = new JComboBox(listedesmots);
    listedesmots étant une liste de mots,mais le problème n'est pas là puisque je vois les mots dans la combobox.
    J'essaye de récupérer l'élément que je sélectionne dans ma combobox et de l'afficher.
    J'ai lu dans mon bouquin sur Java que une JComboBox génère un ActionEvent, et un ItemEvent, donc il faut brancher la jcombobox sur :
    listederdesmots.addActionListener(this);
    listederdesmots.addItemListener(this);
    J'ai défini ma méthode itemStateChanged comme suit :
    public void itemStateChanged(ItemEvent e) {
    System.out.println((String)listederdesmots.getSelectedItem());
    }
    Mais je n'ai pas encore défini de traitement dans le actionPerformed, parce que je n'ai pas saisi la différence qu'il y a entre les 2 au niveau du traitement que je veux faire.

    Bilan : à l'execution, j'ai une exception NullPointerException sur le println de mon ItemStateChanged.

    Quelqu'un peut il m'aider à comprendre la distinction, pour me permettre de débugger mon prgm?

  2. #2
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut
    Tu peux pas passer le cast String pour la méthode getselecteditem() visiblement.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut
    oui, c'est ce que je me suis dit. Donc je pense que le problème vient des écouteurs. Quelle distinction y a t il entre les évnènements ItemListener et le ActionListener lancés par la JComboBox, et quels instructions leur donner?

  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    La JComboBox génère un ActionEvent lorsqu'un item est sélectionné. Les ItemEvents ne sont pas très utiles pour ce composant.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut
    Ok. J'ai avancé, et maintenant, quand je manipule les éléments de ma liste, il n'y a plus d'erreurs. par contre, je n'arrive pas à récupérer le contenu. J'essaye pour le moment simplement d'afficher le contenu de l'élement que je sélectionne, et rien ne s'affiche.

    voici le code qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    protected String stringselected="";
    public void actionPerformed(ActionEvent e) {
    		Object o = e.getSource();
                      [...]
                        if(o==listederdesmots){//ma JComboBox
    	            stringselected = (String)listederdesmots.getSelectedItem();
    		    }
     
    		     if(o==voir){// un Jbutton qui commande l'affichage en console
    			System.out.println(stringselected);
    		      }
     
    }
    Pourquoi est ce que je ne récupère rien??

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    essaye ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(o.equals(listederdesmots)){//ma JComboBox
    	            stringselected = (String)listederdesmots.getSelectedItem();
    		    }

  7. #7
    Membre chevronné Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Par défaut
    Citation Envoyé par xavlours
    La JComboBox génère un ActionEvent lorsqu'un item est sélectionné. Les ItemEvents ne sont pas très utiles pour ce composant.
    Je n'utilise que ItemEvent, et ça fonctionne très bien

  8. #8
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Ah, je me suis fié à la javadoc et à la JComboBoxDemo, et pour une sélection, il y a un ActionEvent mais 2 ItemEvents : un pour dire qu'on a désélectionné l'ancienne valeur, un pour dire qu'on a sélectionné la nouvelle valeur (ce que j'ai confirmé par un petit test histoire de pas me vautrer lamentablement).

    Vu qu'il n'y a pas de sélection multiple pour la JComboBox, ils n'apportent pas plus d'information que l'ActionEvent. Donc de mon point de vue c'est pas le plus adapté.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. [ADO] [MSACCESS] Problème d'accès à une table nommée OF
    Par FredRaid dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/02/2005, 17h22
  2. Problème d'accès à une DB
    Par Mvu dans le forum ASP
    Réponses: 4
    Dernier message: 04/01/2005, 11h36
  3. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02
  4. [swing][JComboBox]Problème de taille
    Par n!co dans le forum Composants
    Réponses: 8
    Dernier message: 06/03/2004, 10h53
  5. problème d'acces concurentiel à un fichier
    Par Theoden dans le forum MFC
    Réponses: 2
    Dernier message: 04/03/2004, 09h49

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