p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 44
    Points : 18
    Points
    18

    Par défaut Multiples Listeners de JButton

    Bonsoir !

    Je suis actuellement en cours d'apprentissage du Java et j'essaie de m'habituer à la réalisation d'interfaces graphiques qui répondent à des actions.

    Pour expliquer mon soucis via un exemple ;

    J'ai une classe Main.java qui affiche une fenêtre avec deux JButton, un JButton Oui et un JButton Non.

    J'aimerai créer un listener dans une classe annexe qui exécute un morceau de code différent selon le bouton cliqué. Appelons cette classe listeners.java.

    Classe Main.java (aucune erreur signalée par Eclipse ici et l'interface s'affiche correctement)

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    import javax.swing.*;
     
     
    public class Main extends JFrame {
     
    	private JPanel container = new JPanel();
     
    	public Main() {
    		this.setTitle("Programme"); 
    		this.setSize(550, 600); 
    		this.setResizable(false);
    		this.setLocationRelativeTo(null); 
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		container.setLayout(null);
     
    		JButton oui = new JButton("Oui");
    		oui.setBounds(100, 100, 100, 50);
    		JButton non = new JButton("Non");
    		non.setBounds(100, 150, 100, 50);
     
    		container.add(oui);
    		container.add(non);
     
    		this.setContentPane(container);
    		this.setVisible(true);
     
    		Listeners list = new Listeners();
    		oui.addActionListener(list);
    		non.addActionListener(list);
     
    	}
    	public static void main(String[] args) {
     
    		Main fenetre = new Main();
     
    	}
     
    }
    Classe Listeners.java erreur à "(source == oui)" ligne 12

    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
     
    public class Listeners implements ActionListener {
     
     
    	public void actionPerformed(ActionEvent e) {
     
    		Object source = e.getSource();
     
    		if (source == oui) {
    			System.out.println("Clic sur Oui");
    		}
    		else {
    			System.out.println("Clic sur non");
    		}
     
    	}
    }
    Eclipse me souligne le "oui" cannot be resolved to a variable. Je ne sais pas comment faire le lien avec la variable déclarant le bouton Oui dans le Main.java

    Mon exemple peut paraître flou, si besoin d'explications supplémentaires je suis bien entendu disponible. Merci à vous.

  2. #2
    Membre du Club
    Inscrit en
    mai 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : mai 2004
    Messages : 85
    Points : 60
    Points
    60

    Par défaut

    Salut dans ta main il suffit de rajouter
    et dans ta classe listener remplacer ton test par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (((JButton)(e.getSource())).getName().equals("oui"))
    et ça roule.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 44
    Points : 18
    Points
    18

    Par défaut

    En effet cela marche parfaitement, merci beaucoup.

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

Discussions similaires

  1. Oracle 11g et multiples listeners
    Par Toin3 dans le forum Connexions aux bases de données
    Réponses: 0
    Dernier message: 12/12/2012, 09h20
  2. Listen un JButton dans une JTable
    Par Goupo dans le forum AWT/SWING
    Réponses: 1
    Dernier message: 14/03/2008, 03h21
  3. listener sur JButton suivant sélection JTable
    Par AnjouWeb dans le forum AWT/SWING
    Réponses: 2
    Dernier message: 11/06/2007, 18h59
  4. JButtons / Listeners : Dynamiques
    Par Darkdaemons dans le forum AWT/SWING
    Réponses: 1
    Dernier message: 23/04/2007, 18h16
  5. recherche listener sur JButton
    Par Kwentin dans le forum AWT/SWING
    Réponses: 3
    Dernier message: 11/09/2006, 08h51

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