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)
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
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(); } }
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
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"); } } }
Mon exemple peut paraître flou, si besoin d'explications supplémentaires je suis bien entendu disponible. Merci à vous.
Partager