afficher image sur une case survolée
Bonjour à tous,
je fais un petit jeu de dame et je voudrais afficher une image sur une case quand je la survole. Voici ce que j'ai fais :
Dans le constructeur de ma classe qui gère l'affichage du damier :
Code:
1 2 3 4 5 6 7 8 9
|
// pour afficher la case survolée
addMouseListener(new MouseAdapter(){
@Override
public void mouseEntered(MouseEvent evenement) {
// TODO: Gérer l'affichage de la case survolée
survol(evenement.getPoint());
}
}); |
Ensuite, la méthode survol(Point p) :
Code:
1 2 3 4 5 6 7 8
|
// Gère le survol des cases
private void survol(Point p) {
final int l = (Damier.TAILLE_PLATEAU - 1 - p.y / tailleCases);
final int c = p.x / tailleCases;
// On dessine la position
dessineSurvol(getGraphics(), l, c);
} |
Et la méthode qui dessine l'image sur la case :
Code:
1 2 3 4 5 6 7 8 9
|
// Dessine l'image de la case survolée
private void dessineSurvol(Graphics g, int l, int c) {
// calcule la position de son coin en haut à gauche
int cPos = c * tailleCases;
int lPos = (Damier.TAILLE_PLATEAU - 1 - l) * tailleCases;
// dessine la case survolée
g.drawImage(caseSurvolee, cPos, lPos, this);
} |
Mon problème n'est surement pas compliqué.
En fait, quand je passe sur mon damier avec ma souris la première case survolée affiche bien l'image, et ensuite, il faut que je ressorte du JPanel (ma classe Damier étend JPanel) pour qu'il réaffiche l'image sur une autre case survolée, et ceci sans effacer la dernière. :(
J'aimerais que lorsque je suis sur mon JPanel avec ma souris, à chaque fois que je survole une case, il m'affiche l'image, et tout ceci en supprimant l'image affichée sur la dernière case.
Merci pour votre aide !
P.S : Ce serait bien aussi qu'aucune image ne s'affiche quand je sort de mon JPanel avec ma souris.