AWT/Swing: recuperer les coordonnes du curseur souris lors du traitement d'un KeyEvent
1 réponse
Bonjour,
je cherche a recuperer les coordonnees du curseur souris dans un Canvas
lorsqu'une certaine touche du clavier est pressee.
La seule solution que j'ai trouvee pour l'instant consiste a implementer a
la fois KeyListener et MouseMotionListener, et dans le corps de
mouseMoved(), stoker dans une variable l'evenement MouseEvent, pour
finalement en extraire les coordonnees dans keyPressed() lorsque la touche
en question est pressee...
Ca me parait un peu lourd et couteux en perf : mouseMoved() va etre appele
tres souvent et mettre a jour une variable pour memoriser le dernier
MouseEvent, et ce dans 99% des cas pour rien...
d'autres suggestions pour recuperer les coordonnees du curseur (peut on par
exemple artificiellement faire un fire d'event de type MouseEvent par code,
pour ensuite l'intercepter et recuperer le coordonnees?)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Slideboy
hello!
Ce que tu peux faire est déclarer ton MouseMotionListener dans une variable (monListener) si ce n'est pas encore le cas - et pas directement dans le addMouseMotionListener(). Ensuite, lors du keyPressed, tu fais addMouseMotionListener(monListener), puis tu le retires avec removeMouseMotionListener(monListener) lors du keyReleased() De ce fait ton listener n'est actif que lorsque ta touche est pressée. D'autre part, tu n'auras plus besoin de stocker les coordonnees de ta souris puisque tu traiteras l'évenement directement dans ton MouseMotionListener.
sb
<EC> a écrit dans le message news: 3f12ed7a$0$10854$
Bonjour,
je cherche a recuperer les coordonnees du curseur souris dans un Canvas lorsqu'une certaine touche du clavier est pressee.
La seule solution que j'ai trouvee pour l'instant consiste a implementer a la fois KeyListener et MouseMotionListener, et dans le corps de mouseMoved(), stoker dans une variable l'evenement MouseEvent, pour finalement en extraire les coordonnees dans keyPressed() lorsque la touche en question est pressee... Ca me parait un peu lourd et couteux en perf : mouseMoved() va etre appele tres souvent et mettre a jour une variable pour memoriser le dernier MouseEvent, et ce dans 99% des cas pour rien...
d'autres suggestions pour recuperer les coordonnees du curseur (peut on par
exemple artificiellement faire un fire d'event de type MouseEvent par code,
pour ensuite l'intercepter et recuperer le coordonnees?)
merci
hello!
Ce que tu peux faire est déclarer ton MouseMotionListener dans une variable
(monListener) si ce n'est pas encore le cas - et pas directement dans le
addMouseMotionListener().
Ensuite, lors du keyPressed, tu fais addMouseMotionListener(monListener),
puis tu le retires avec removeMouseMotionListener(monListener) lors du
keyReleased()
De ce fait ton listener n'est actif que lorsque ta touche est pressée.
D'autre part, tu n'auras plus besoin de stocker les coordonnees de ta souris
puisque tu traiteras l'évenement directement dans ton MouseMotionListener.
sb
<EC> a écrit dans le message news: 3f12ed7a$0$10854$626a54ce@news.free.fr...
Bonjour,
je cherche a recuperer les coordonnees du curseur souris dans un Canvas
lorsqu'une certaine touche du clavier est pressee.
La seule solution que j'ai trouvee pour l'instant consiste a implementer a
la fois KeyListener et MouseMotionListener, et dans le corps de
mouseMoved(), stoker dans une variable l'evenement MouseEvent, pour
finalement en extraire les coordonnees dans keyPressed() lorsque la touche
en question est pressee...
Ca me parait un peu lourd et couteux en perf : mouseMoved() va etre appele
tres souvent et mettre a jour une variable pour memoriser le dernier
MouseEvent, et ce dans 99% des cas pour rien...
d'autres suggestions pour recuperer les coordonnees du curseur (peut on
par
exemple artificiellement faire un fire d'event de type MouseEvent par
code,
pour ensuite l'intercepter et recuperer le coordonnees?)
Ce que tu peux faire est déclarer ton MouseMotionListener dans une variable (monListener) si ce n'est pas encore le cas - et pas directement dans le addMouseMotionListener(). Ensuite, lors du keyPressed, tu fais addMouseMotionListener(monListener), puis tu le retires avec removeMouseMotionListener(monListener) lors du keyReleased() De ce fait ton listener n'est actif que lorsque ta touche est pressée. D'autre part, tu n'auras plus besoin de stocker les coordonnees de ta souris puisque tu traiteras l'évenement directement dans ton MouseMotionListener.
sb
<EC> a écrit dans le message news: 3f12ed7a$0$10854$
Bonjour,
je cherche a recuperer les coordonnees du curseur souris dans un Canvas lorsqu'une certaine touche du clavier est pressee.
La seule solution que j'ai trouvee pour l'instant consiste a implementer a la fois KeyListener et MouseMotionListener, et dans le corps de mouseMoved(), stoker dans une variable l'evenement MouseEvent, pour finalement en extraire les coordonnees dans keyPressed() lorsque la touche en question est pressee... Ca me parait un peu lourd et couteux en perf : mouseMoved() va etre appele tres souvent et mettre a jour une variable pour memoriser le dernier MouseEvent, et ce dans 99% des cas pour rien...
d'autres suggestions pour recuperer les coordonnees du curseur (peut on par
exemple artificiellement faire un fire d'event de type MouseEvent par code,
pour ensuite l'intercepter et recuperer le coordonnees?)