Repérer un évènement de la souris sur une zone de dessin
Bonjour à tous,
Je me pose une petite question à propos des évènements liés à la souris.
Tout d'abord, j'ai une classe Ovale qui hérite de JPanel, et possède une méthode paintComponent :
Code:
1 2 3 4 5 6 7 8 9 10 11
| protected void paintComponent(Graphics g)
{
g.setColor(couleur);
if (plein)
g.fillOval(0, 0, largeur, hauteur);
else
g.drawOval(0, 0, largeur, hauteur);
setLocation(xRef, yRef);
} |
J'aimerais savoir si on peut, dans un mouseMoved par exemple, déterminer si le curseur de la souris est sur la figure dessinée, et non pas seulement sur le JPanel.
Voici un exemple :
http://img638.imageshack.us/img638/7...anelsouris.png
* Sur ce schéma j'ai représenté le contentPane de la JFrame en vert
* En jaune c'est mon objet Ovale, c'est-à-dire un JPanel
* En rouge c'est la figure dessinée par la méthode paintComponent
J'aimerais donc savor quand le curseur est dans la zone rouge (et seulement dans la zone rouge !).
Voici le code actuel du listener :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Ovale o = new Ovale(100, 100, 50, 50, Color.RED, true);
o.addMouseMotionListener(new MouseMotionListener()
{
public void mouseDragged(MouseEvent e) { }
public void mouseMoved(MouseEvent e)
{
System.out.println("Moved on rouge : " + e.getX() + ":" + e.getY());
}
});
[...] |
Merci