Bonjour, je débute avec Swing et voici mon problème :
J'ai une JFrame frame1 qui possède un bouton bOuvrir et un label lResultat.
Quand je clique sur bOuvrir, je crée une nouvelle JFrame frame2.
frame2 contient 2 boutons: bValider et bAnnuler.
Si je clique sur bValider, je veux que le texte de lResultat devienne : 'Validé'.
Si je clique sur bAnnuler, je veux que le texte de lResultat devienne : 'Annulé'.
Voici mon code au niveau de frame1:
Au niveau de Frame2 j'ai implémenté ce qu'il faut pour que les méthodes validation() et annulation() soit appellés sur les listeners au moment du clic sur les boutons correspondant.
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 ....... bOuvrir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Frame2 frame2 = new Frame2(); // Je veux ajouter frame1 comme listener frame2.addBoutonValiderListener(this); frame2.addBoutonAnnulerListener(this); } } ........ public void validation() { lResultat.setText("Validé"); } public void annulation() { lResultat.setText("Annulé"); }
Le soucis vient des 2 lignes:
frame2.addBoutonValiderListener(this);
frame2.addBoutonAnnulerListener(this);
En effet 'this' correspond non pas à ma frame1 mais à l'ActionListener anonyme que j'ai créé pour bOuvrir.
Comment faire pour pouvoir appeller ces 2 méthodes en passant mon objet frame1 en paramètre?
Merci d'avance pour toute aide
Partager