Précédent   Forum du club des développeurs et IT Pro > Java > Interfaces Graphiques en Java > AWT/SWING
AWT/SWING
Forum d'entraide pour les API Swing et AWT. Avant de poster -> FAQ AWT/SWING
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/12/2012, 23h38   #1
Ywnith
Invité régulier
 
Homme
Étudiant
Inscription : novembre 2012
Messages : 18
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 : 18
Points : 6
Points : 6
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 :
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 :
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.
Ywnith est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2012, 23h59   #2
ced00
Membre du Club
 
Inscription : mai 2004
Messages : 85
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 85
Points : 55
Points : 55
Salut dans ta main il suffit de rajouter
et dans ta classe listener remplacer ton test par

Code :
if (((JButton)(e.getSource())).getName().equals("oui"))
et ça roule.
ced00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 00h04   #3
Ywnith
Invité régulier
 
Homme
Étudiant
Inscription : novembre 2012
Messages : 18
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 : 18
Points : 6
Points : 6
En effet cela marche parfaitement, merci beaucoup.
Ywnith est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h39.


 
 
 
 
Partenaires

Hébergement Web