Bonjour à tous !

Je vous explique mon problème : Je voudrais récupéré la position de la souris au clique dans mon image. J'ai trouver de la doc :
A partir d'un composant avec MouseEvent

En enregistrant un MouseEvent auprès de votre composant graphique, vous pouvez avoir accès à la position de la souris relativement à ce composant. Il vous suffira ensuite d'utiliser la méthode getLocationOnScreen() de Component pour calculer la position de la souris par rapport à l'écran.

int x = (int)(mouseEvent.getPoint().getX() + monComposant.getLocationOnScreen().getX());
int y = (int)(mouseEvent.getPoint().getY() + monComposant.getLocationOnScreen().getY());
Vous pouvez aussi utiliser la méthode convertPointToScreen() de la classe javax.swing.SwingUtilities. Par exemple :

MouseEvent event = ...;
Component composant = ...;
Point locationComposant = event.getPoint();
Point locationEcran = SwingUtilities.convertPointToScreen(locationComposant, composant);
Sans composant graphique

A partir de Java 5.0 (Tiger), si vous voulez connaître la position de la souris (même en dehors d'une fenêtre) vous pouvez utiliser l'objet MouseInfo du package java.awt. Par exemple :

PointerInfo pointer = MouseInfo.getPointerInfo();
Point location = pointer.getLocation();
System.out.println("La souris se trouve en "+location);
Attention, l'instance de PointerInfo n'est pas mise à jour automatiquement. Vous devrez en récupérer une nouvelle instance à chaque fois.

Avant Java 5.0, la seule solution possible est de passer par JNI (Java Native Interface). Vous pourrez ainsi avoir accès grâce à des langages plus proches du système aux cooordonnées de la souris à l'écran. Attention tout de même, vous risquez de perdre la portabilité de votre application.
Mais ne vois pas comment l'implémenter.

Voici ma classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
 
import javax.imageio.ImageIO;
import javax.swing.JPanel;
 
public class Panneau extends JPanel implements MouseListener {
 
	@Override
	public void paintComponent(final Graphics g) {
 
		try {
			Image img = ImageIO.read(new File("image.jpg"));
			this.setSize(1366, 768);
			g.drawImage(img, 0, 0, null);
 
		} catch (IOException e) {
 
			e.printStackTrace();
		}
 
		addMouseListener(this);
 
	}
 
	@Override
	public void mouseClicked(final MouseEvent event) {
 
	}
}
merci d'avance =)