Bonjour à tous,
Je viens solliciter votre aide car je me casse la tête sur un problème d'écouteur depuis plusieurs jours.
Mon application est une sorte de jeu de cartes. Elle contient un JPanel (inclus dans un JScrollPane, pour avoir une ScrollBar), qui peut contenir différents boutons représentant des cartes du jeu (qui dérivent de JButton).
En fait, de base, le JPanel n'est pas visible et ne contient aucun bouton. Si la touche F1 est appuyée, mon application ajoute dans le JPanel les cartes du joueur 1, puis l'affiche de la manière suivante :
J'ajoute également des écouteurs sur chaque carte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if (e.getKeyCode() == e.VK_F1) { this.panelHand.SetCards(this.players.get(0).getHand()); // On définit les cartes du panel comme celles du joueur 1 this.panelHand.setVisible(true); this.panelHand.paintImmediately(getBounds()); // Redessiner le panel (car c'est la méthode paintComponent du panel qui va ajouter les cartes, ce qui est nécessaire avant d'appeler GetVarButtons pour ajouter les écouteurs) this.panelHand.validate(); this.AddActionListener(this.panelHand.GetVarButtons()); }
Mon problème avec ce code est que lorsque je clique sur un bouton représentant une carte, rien ne se passe, comme ci je n'avais pas ajouté d'écouteur à mes boutons...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public void AddActionListener(ArrayList<JButton> _buttons) { for (JButton button : _buttons) { button.addActionListener(this); } }
Par exemple, lorsque je clique sur un bouton, le programme n'affiche rien, malgré ce code :
Mon problème peut-il venir du fait que pour mes boutons j'ai créé une classe qui hérite de JButton, et non pas JButton directement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void actionPerformed(ActionEvent e) { System.out.println("Action"); }
Merci d'avance !
Partager