OVH Cloud OVH Cloud

Scuter la position de la souris à l'extérieur des composant

3 réponses
Avatar
Benoît Chauvet
Bonjour,

Je voudrais savoir s'il est possible de connaitre la position de la souris
sur l'écran (et non pas par rapport aux coordonnées d'un composant). Je
précise que la souris est à l'extérieur du cadre JFrame de mon application
Java.

J'utilise actuellement la classe Robot, qui me permet de déplacer la souris,
mais elle ne me permet pas de savoir où le curseur se trouve à un moment
donné.

J'ai cherché s'il était possible de demander à un composant Swing d'écouter
les mouvements de la souris, mais l'interface MouseMotionListener ne
comporte que deux méthodes : mouseDrag PEUT renvoyer des coordonnées
extérieures à l'application, mais il faut que le drag ait été initié à
l'intérieur d'un composant Swing (et donc accessoirement que l'utilisateur
ait cliqué sur un bouton). A l'inverse, mouseMove ne renvoye un évènement
que si la souris est dans le cadre du composant.

Existe-t'il un composant qui pourrait écouter tout l'écran ?

Merci de votre aide.

--
Orabîg

3 réponses

Avatar
"Benoît Chauvet" wrote in
message news:c0lqgo$noj$
Bonjour,

Je voudrais savoir s'il est possible de connaitre la position de la souris
sur l'écran (et non pas par rapport aux coordonnées d'un composant). Je
précise que la souris est à l'extérieur du cadre JFrame de mon application
Java.

J'utilise actuellement la classe Robot, qui me permet de déplacer la
souris,

mais elle ne me permet pas de savoir où le curseur se trouve à un moment
donné.

J'ai cherché s'il était possible de demander à un composant Swing
d'écouter

les mouvements de la souris, mais l'interface MouseMotionListener ne
comporte que deux méthodes : mouseDrag PEUT renvoyer des coordonnées
extérieures à l'application, mais il faut que le drag ait été initié à
l'intérieur d'un composant Swing (et donc accessoirement que l'utilisateur
ait cliqué sur un bouton). A l'inverse, mouseMove ne renvoye un évènement
que si la souris est dans le cadre du composant.

Existe-t'il un composant qui pourrait écouter tout l'écran ?

Merci de votre aide.

--
Orabîg




Avatar
Ouch! Pas facile du tout (du moins, sous Windowzs) car il faut detourner les
messages envoyes pas la souris pour les renvoyer a ton appli. Mais
attention, il y a l'effet secondaire, c'est que cela revient a avoir ton
appli qui a le controle complet de la souris, et quelque soit ou elle se
trouve. Donc, tu ne pourras pas utiliser ta souris pour faire d'autres
choses, sauf, si evidemment, ton appli n'as plus le controle de la souris.
Mais alors, tu retombes dans ton probleme de depart: tu ne sais plus ou se
trouve le pointeur si une autre appli prends la main., etc... C'est le
serpent qui se mord la queue.

Essaye de voir si en Java, tu peux trouver les equivalents des API
setCapture, getCapture et releaseCatpure (si tu es sous Windows evidemment,
sinon, je n'ai aucune idee).

@+
T.
Avatar
Benoît Chauvet
wrote:
Ouch! Pas facile du tout (du moins, sous Windowzs) car il faut
detourner les messages envoyes pas la souris pour les renvoyer a ton
appli. Mais attention, il y a l'effet secondaire, c'est que cela
revient a avoir ton appli qui a le controle complet de la souris, et
quelque soit ou elle se trouve. Donc, tu ne pourras pas utiliser ta
souris pour faire d'autres choses, sauf, si evidemment, ton appli
n'as plus le controle de la souris. Mais alors, tu retombes dans ton
probleme de depart: tu ne sais plus ou se trouve le pointeur si une
autre appli prends la main., etc... C'est le serpent qui se mord la
queue.

Essaye de voir si en Java, tu peux trouver les equivalents des API
setCapture, getCapture et releaseCatpure (si tu es sous Windows
evidemment, sinon, je n'ai aucune idee).


Hum, j'ai fait un peu le tour, et je vois pas...
Bon, ben, je crois que je vais faire autrement et renoncer à l'idée que
j'avais.

Merci de ta réponse, en tout cas.

--
Orabîg