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 :

Appliquer la même méthode actionPerformed() à tous les boutons


Sujet :

AWT/Swing Java

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut Appliquer la même méthode actionPerformed() à tous les boutons
    Bonjour,

    Je voudrais savoir comment créé un nombre x de boutons (en les nommant) et leur appliqué la même méthode actionPerformed. Quand je clique sur un bouton, il me renvoie dans la consol le nom du bouton cliqué.
    J'ai essayé de faire ça mais actionPerformed ne s'applique qu'au dernier bouton crée.

    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
     
     
    Vector<String> vs = ["val1","val2",...]
    String nomBouton = new String();
     
    		for (int i=0;i<vs.size();i++)
    		{
    			nomBouton = vs.get(i);
    			btnNewButton = new JButton(nomBouton); 
    			panel.add(btnNewButton); 
    			btnNewButton.addActionListener(new ActionListener()
    			{
    				@Override
    				public void actionPerformed(ActionEvent arg0) { System.out.println(nomBouton); }
     
     
    			});
    		}

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    Dans l'idée il te faut créer une classe qui implémente l'interface ActionListener puis créer une instance pour tes boutons.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class MonListenerPerso implements ActionListener
    {
      @Override
      public void actionPerformed(ActionEvent event){}
     
    }
     
    // la création des boutons
    bouton.addActionListener(new MonListenerPerso()};
    Mais ton problème ne vient pas de là car ta manière de faire reste correcte.

    Par contre quand tu écris public void actionPerformed(ActionEvent arg0) { System.out.println(nomBouton); } ta variable "nomBouton" a gardé la dernière valeur de ta liste de nom. C'est donc normal qu'il t'affiche toujours la même valeur.

    Tu dois utiliser l'ActionEvent pour faire référence au bouton sur lequel tu viens cliquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    @Override
    public void actionPerformed( ActionEvent event )
    {
      System.out.println( event.getActionCommand() );
    }

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Merci de votre aide.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/08/2007, 12h02
  2. Réponses: 3
    Dernier message: 13/12/2006, 22h21
  3. [VBA-E] Parcourir tous les boutons d'une feuille
    Par striky2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/05/2006, 08h51
  4. La même ip pour tous les connecté du forum!
    Par Grand Hibou dans le forum Langage
    Réponses: 1
    Dernier message: 03/02/2006, 10h23
  5. Réponses: 4
    Dernier message: 29/09/2005, 11h50

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