Merci de tes réponses, c'est effectivement pas bien compliqué.
Mais en fait mon problème est un petit plus compliqué :
En fait j'ai un JPanel "DrawingPanel" qui contient un JScrollPane. Le viewport du ScrollPane, c'est un JComponent "ImageView" où est dessiné mon image. Donc je fais dans DrawingPanel :
ScrollPane.setViewportView(imageView);
imageView étant bien sur une instance de ma classe ImageView.
Donc le but c'est d'avoir un mouselistener sur le viewport afin de se balader sur l'image et de récupérer des infos (coordonnées, niveaux de gris etc...).
Ca j'ai bien compris, avant on avait un mouselistener sur le scrollpane en entier, ce qui fait que lors d'un zoom, les coordonnées étaient faussée.
Donc j'imagine que la solution c'est de mettre un mouselistener dans ma classe ImageView, ce que j'ai fait :
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
| public class ImageView extends JComponent implements MouseListener{
.........
public ImageView(Image image, ArrayList info) {
......
}
.........
// implementation du mouse listener
public void mouseMoved(MouseEvent e) {
pt=getMousePosition();
}
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public Point getRealPosition(){
return pt;
}
} |
Dans mon Panel "DrawingPanel", je ne sais pas trop comment faire. Pour le moment j'ai aussi un MouseListener, et quand on bouge la souris, ca utilise la méthode getRealPosition() de l'imageView.
Partager