Mac OSX Java: получение событий мыши, когда они не активированы - PullRequest
6 голосов
/ 31 мая 2010

Я пишу Java-приложение Swing, которое должно иметь окно, получающее события перемещения мыши, когда приложение не активировано - воспринимайте это как глобальную панель инструментов всегда сверху, которая анимируется, когда мышь проходит над ней. *

Из моих исследований я видел, что JRE для Mac Java передает события только тогда, когда приложение находится в фокусе.

Это, похоже, не является ограничением ОС, поэтому я надеялся, что было системное свойство, свойство пакета приложения или системный вызов, который включал неактивированную обработку событий. В противном случае - какой-то метод глобального захвата событий движения мыши и передачи их в приложение Java.

Спасибо за любые предложения ...

Редактировать: Еще один вопрос: как только события перемещения мыши были захвачены, как вы подаете их в Swing, чтобы они обрабатывались так же, как события мыши в собственной ОС - путем нахождения компонента под мышью и отправки MouseEvent to it ...

1 Ответ

2 голосов
/ 04 июня 2010

Это невозможно с чистой Java.
Вам потребуется JNI и написать глобальный список клавиш (или хук клавиатуры ) на C ++ или другом языке.

Вот несколько тем о Global KeyListener:

По последней теме: это было заданным решением для OSX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...