2010-08-14 9 views
0

Par exemple, supposons que j'ai un dessin dans une sous-classe JPanel avec JScrollPanes, et je veux capturer les points sur lesquels l'utilisateur clique. Supposons, par exemple, que la zone de dessin à l'intérieur du JPanel passe de 0 à 10000, alors que la taille de l'écran n'est pas connue a priori. Compte tenu des coordonnées de la souris dans l'événement click, est-il possible de déterminer où se trouve réellement la plage 0 - 10000? Par exemple, la coordonnée sur l'écran serait (300, 500) selon l'événement mais la position réelle dans la toile pourrait être (5890, 3200).Java: obtention de la position absolue de la souris dans un JPanel donné la coordonnée sur laquelle l'utilisateur a cliqué

Répondre

0

Les coordonnées de la souris lors de la livraison à un composant sont données par rapport au composant, donc votre JPanel vous verrez 5890,3200 si c'était la partie visible sur laquelle la souris a été cliquée. Si vous devez traduire des coordonnées d'écran, vous pouvez utiliser JViewport pour trouver les coordonnées de la vue qui sont actuellement visibles dans la fenêtre, via JViewport.getViewRect(). Vous obtenez la vue depuis le JScrollPane via JScrollPane.getViewport().

+0

attente, mais je dois mettre le jpanel dans un jscrollpane. Je pensais que ça allait gâcher? J'étais presque sûr en fait. Je vais vérifier et faire un rapport à l'époque. –

+0

ah, vous aviez raison. Je pense que je pensais avant d'ajouter l'auditeur au scrollpane à la place? je ne sais pas. Mais merci quand même. –

Questions connexes