addMouseListener pour un Composite

Aujourd'hui, j'ai un problème..
Mon programme de faire une grille 8x8 et de montrer la coord lorsque je clique sur un JButton.

MAIS je refuse d'utiliser JButton et j'ai besoin d'aller JPanel.. Mais mon addMouseListener ne fonctionne pas donc je ne sais pas comment est-il possible de corriger cela je suis à la recherche depuis 4h.....

    package coordboutons;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CoordBoutons extends JFrame {
CoordBoutons() {
super("GridLayout");
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container contenant = getContentPane();
contenant.setLayout(new GridLayout(8, 8));
for (int i = 0; i < 8; i++) 
for (int j = 0; j < 8; j++)
contenant.add(new CaseEchiquier(i, j));
pack();
setVisible(true);
}
**class CaseEchiquier extends JPanel** {
private int lin, col;
CaseEchiquier(int i, int j) {
lin = i;
col = j;
setPreferredSize(new Dimension(80, 75));
setBackground((i + j) % 2 == 0 ? Color.WHITE : Color.GRAY);
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println((char)('a' + col) + "" + (8 - lin));
}
});
}
}
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
CoordBoutons coordBoutons = new CoordBoutons();
}
}
  • J'ai peut-être raté quelque chose ici, mais ActionListener n'est pas un MouseListener
  • Tu veux dire addActionListener ne fonctionne pas. Ce serait parce que vous ne pouvez pas vous inscrire JPanel avec ce type d'écouteur
  • vôtre, essayez d'ajouter un mouselistener pour vos panneaux de droite? mais votre code isc actionListener, il n'y a pas de actionlistener méthode dans un Composite. et je pense que c'est une mauvaise idée d'avoir 64 newMouseListeners, vous avez seulement besoin d'une pour tous les 64 panneaux. ajoutez un mouselistener comme un paramètre dans votre CaseEchiquier(int i, int j, MouseListener m)
  • "Je refuse d'utiliser JButton" ... pourquoi?
InformationsquelleAutor user2360545 | 2013-05-08