thithib112
Messages postés2Date d'inscriptionjeudi 23 avril 2009StatutMembreDernière intervention24 avril 2009
-
23 avril 2009 à 17:05
thithib112
Messages postés2Date d'inscriptionjeudi 23 avril 2009StatutMembreDernière intervention24 avril 2009
-
24 avril 2009 à 17:28
Bonjour,
Je suis en ce moment sur un projet de puzzle, mais il me reste un obstacle pour le finir: l'interaction avec l'utilisateur.
Je m'explique: je voudrais que le joueur puisse déplacer les images (qui sont contenues dans 9 JLabel dans un tableau de type 3x3 genre grille[i][j]) en cliquant sur celle qu'il veut bouger, puis une autre fois sur l'image qu'il veut remplacer.
Pour ca j'utilise:
public void move(JLabel a , JLabel b)
{
Icon img = a.getIcon(); //récupère l'image contenue sur le jLabel a, on l'enregistre
a.setIcon(b.getIcon()); //ensuite on peut remplacer l'image de a, par l'image de b
b.setIcon(img); //remplace l'image de b par l'image de a (qu'on avait sauvergardée)
}
Mais je ne sais pas me servir d'un mouseClicked, ou du moins je n'ai pas trouvé comment faire ce que je veux faire.
Je pars de ça:
public void mouseClicked(MouseEvent e)
{
Object label = e.getSource(); //recupere les infos sur le jLabel (adresse mémoire)
Armiana
Messages postés3Date d'inscriptionlundi 20 avril 2009StatutMembreDernière intervention 1 juillet 2009 24 avril 2009 à 14:55
Bonjour,
Ca fait un bout de temps que j'ai pas fait d'évennementiel en Java (ni du java tout court d'ailleurs), mais si je me rappelle bien, il faut que tu ajoute des écouteurs sur tes JLabels, et que ta fonction move apparaisse dans le mouseCliked...
J'espere pouvoir t'aider, je ferais des recherches plus approfondies si tu ne t'en sors pas.
thithib112
Messages postés2Date d'inscriptionjeudi 23 avril 2009StatutMembreDernière intervention24 avril 2009 24 avril 2009 à 17:28
Armiana, j'ai déjà ajouté des écouteurs :
grille[i][j].addMouseListener(this); //active les controles sur le Jlabel que on a crée
avec les JLabel enregistré dans grille[i][j],
et puis oui je pensais mettre aussi la fonction move dans mouseClicked, le truc c'est que je ne sais
pas convertir la position getX et getY en l'image cliquée: par exemple grille[1][0] ou grille[i+1][j]