Реагировать на глобальную горячую клавишу в программе Java на Windows / Linux / Mac? - PullRequest
22 голосов
/ 17 сентября 2008

Приложение Java6 находится в системном трее. Его необходимо активировать с помощью горячей клавиши (например, Super-G или Ctrl-Shift-L и т. Д.) И выполнить что-либо (например, показать поле ввода).

Как мне это сделать:

  • Windows (XP или Vista)
  • OS / X
  • Linux (Gnome или KDE)

Ответы [ 5 ]

25 голосов
/ 21 июня 2011

Я скомпилировал библиотеку для глобальных горячих клавиш в Java, используя JNA. В настоящее время он поддерживает Windows, Linux и Mac OSX. Он также поддерживает мультимедийные клавиши на Windows и Linux.

если кому-то интересно, попробуйте https://github.com/tulskiy/jkeymaster

Буду признателен за любые отзывы.

Спасибо.

7 голосов
/ 14 октября 2008

Для Linux (X11) есть JXGrabKey: http://sourceforge.net/projects/jxgrabkey/

Существует также руководство по использованию глобальной горячей клавиши в Linux: http://ubuntuforums.org/showthread.php?t=864566

Я пока не нашел решения для OS X.

Чтобы создать что-то для всех трех платформ, я бы предложил сократить JIntellitype (это лицензия Apache) до его глобальной функциональности горячих клавиш и расширить его функциональностью OS X и X11 ...

6 голосов
/ 17 сентября 2008

Похоже, что это невозможно в кроссплатформенном режиме без использования собственных интерфейсов.

В Windows вы можете использовать бесплатную библиотеку JIntellitype .

5 голосов
/ 27 октября 2008

Если кто-то захочет создать версии JNI для Jintellitype для OSX или Linux, я буду рад добавить их в библиотеку JIntellitype.

Melloware

http://www.melloware.com

1 голос
/ 23 мая 2011

Я нашел это решение, которое отлично работает на Windows. Вам не нужно устанавливать какое-либо программное обеспечение, такое как JIntelliType. Обратите внимание, что это 32-битная DLL, и вы можете перекомпилировать для 64-битной JVM, если хотите. Все отзывы автора оригинального блога.

...