Bonjour, je fais un petit projet pour m’entraîner en java et j'ai un petit souci, qui ne doit pas être bien compliquer mais je bloque.
Je dispose d'une jFrame avec un jpanel dedans où je dispose de 3 boutons, je voudrais que lorsque j'appuie sur un de ces boutons, j'active une méthode de ma frame. J'ai essayer avec un observer mais je n'arrive pas à le faire marcher .
Voici le code (j'ai juste mis l'essentiel) :
Ma classe Frame :
Et le code de mon JPanel menu (je n'ai mis que le code d'un bouton) :
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 public class Fenetre extends JFrame { private TableRonde tabronde = new TableRonde(); private boolean finie = false; // Création d'une fenetre du jeu public Fenetre () { this.setTitle("Table Ronde"); this.setSize(800, 600); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Menu panel = new Menu(); panel.setLayout(null); this.setContentPane(panel); this.setLocationRelativeTo(null); this.setVisible(true); } // méthode qui créer le jeu dans la frame public void jeu () { this.setContentPane(new Dessinjeu(this.tabronde)); this.invalidate(); this.validate(); this.repaint(); }
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 public class Menu extends JPanel { // Contructeur de base // On créer 3 boutons qui renvoie sur différentes option du jeu public Menu () { JButton b1 = new JButton("Jouez"); b1.addActionListener(new Actionjouer()); // ->>>>>>> this.add(b1); } public class Actionjouer implements ActionListener { public void actionPerformed(ActionEvent e) { // -> je souhaiterais appeler la méthode jouer de ma JFrame... } }
Voila donc en gros je créé une fenêtre, je créer mon JPanel menu. Quand j'appui sur le bouton je souhaite créer un nouveau JPanel (new Dessinjeu()), mais je ne sait pas comment accéder à ma jframe de ma classe menu...
Voila si quelqu'un peut m'aider, ce serait vraiment coul !
Cordialement,
Tititrois
Partager