6 votes

Mac OSX Java : Recevoir les événements de la souris lorsqu'ils ne sont pas activés

J'écris une application Java Swing qui doit faire en sorte qu'une fenêtre reçoive les événements de mouvement de la souris lorsque l'application n'est pas activée - imaginez une barre d'outils globale toujours en haut qui s'anime lorsque la souris passe dessus.

D'après les recherches que j'ai effectuées jusqu'à présent, j'ai constaté que le Mac Java JRE ne transmet les événements que lorsque l'application a le focus.

Il ne semble pas qu'il s'agisse d'une limitation du système d'exploitation. J'espérais donc qu'une propriété du système, une propriété d'un paquet d'applications ou un appel système permettait de gérer les événements non activés. À défaut, une méthode permettant de capturer globalement les événements liés aux mouvements de la souris et de les transmettre à l'application Java.

Merci pour toute suggestion...

Edit : Une autre question : Une fois que les événements de déplacement de la souris ont été capturés, comment les introduire dans Swing pour qu'ils soient traités de la même manière que les événements de souris de l'OS natif -- en trouvant le composant sous la souris et en lui envoyant un MouseEvent...

2voto

Martijn Courteaux Points 33836

Ce n'est pas possible avec du pur Java.
Vous aurez besoin de JNI et pour écrire un keylistener global (ou un crochet pour clavier ) en C++ ou dans un autre langage.

Voici quelques sujets concernant le Global KeyListener :

Sur le dernier sujet : este était une solution donnée pour OSX.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X