J'ai un JLabel
avec un MouseListener
label.addMouseListener( new ClickController() );
où les actions à effectuer sont dans
class ClickController{
...
public void mouseClicked(MouseEvent me) {
// retrieve Label object
}
Existe-t-il un moyen d'associer un objet à la JLabel pour que je puisse y accéder à partir de la méthode mouseClicked ?
Edit :
Pour donner un exemple plus illustratif, ce que j'essaie de faire ici est de définir JLabels comme une représentation graphique de cartes à jouer. L'étiquette est censée être la représentation d'un objet Carte qui contient toutes les données réelles. Je veux donc associer cet objet Card à l'étiquette JLabel.
Solution :
Comme le suggère "Hovercraft Full Of Eels", me.getSource()
est la voie à suivre. Dans mon cas particulier, ce serait :
Card card = new Card();
label.putClientProperty("anythingiwant", card);
label.addMouseListener( new ClickController() );
et récupérer l'objet Carte de l'écouteur :
public void mouseClicked(MouseEvent me) {
JLabel label = (JLabel) me.getSource();
Card card = (Card) label.getClientProperty("anythingiwant");
// do anything with card
}