Я сделал приложение с использованием java, которое делает и сохраняет скриншоты в указанной папке. Я установил сочетание клавиш Ctrl + K, чтобы сделать и сохранить снимок экрана, и мне удалось свернуть мое приложение в системный трей при нажатии кнопки свертывания jframe, но проблема в том, что назначенное сочетание клавиш не работает, как только jframe либо свернуто или переведено в фоновый режим каким-либо другим приложением. Можно ли заставить приложение работать, даже если JFrame не находится в фокусе? Пожалуйста помоги! Спасибо! (Я делаю приложение только для Windows)
как принимать сочетания клавиш, когда jframe не в фокусе?
comment
Windows не будет отправлять Ctrl-K в свернутые окна. Так что ничего из того, что вы можете сделать на Java, не даст вам того, что вы хотите.
- person Dawood ibn Kareem   schedule 30.05.2014
comment
О единственном решении, которое у вас есть, было бы использовать библиотеку JNI/JNA, которая могла бы отслеживать глобальные нажатия клавиш, сгенерированные на уровне ОС.
- person MadProgrammer   schedule 30.05.2014
comment
@MadProgrammer, не могли бы вы дать мне ссылку на примеры того, как использовать упомянутую вами библиотеку JNI/JNA. Пожалуйста.
- person user3626393   schedule 30.05.2014
comment
Я хочу знать, почему мой вопрос был задан -1??? Я не нашел такого предыдущего вопроса в stackoverflow.
- person user3626393   schedule 30.05.2014
comment
Вы, вероятно, никогда не узнаете, кто проголосовал за него и почему. Вы мало что можете с этим поделать, но я не понимаю, почему это имеет значение. Вы получили ответ, который хотели.
- person Dawood ibn Kareem   schedule 30.05.2014
comment
да, но все же, сэр, должна быть веская причина, чтобы понизить вопрос, но я думаю, что некоторым людям нравится понизить голосование. в любом случае всем спасибо! :)
- person user3626393   schedule 30.05.2014
Ответы (1)
Для чего-то подобного я бы использовал стороннюю библиотеку, например JNativeHook (я часто ее использую). Вы можете использовать глобальный прослушиватель nativehook
Вот несколько примеров его использования примеры
person
Tomas Bisciak
schedule
30.05.2014
Спасибо за ваш ответ, я думаю, это сработает, но я хочу кое-что спросить, показанный пример включает использование одной клавиши в качестве ярлыка, в то время как я хочу Ctrl + K, можно ли это реализовать с помощью этой библиотеки?
- person user3626393; 30.05.2014
конечно, это почти так же, как вы привыкли делать это в свинге.
- person Tomas Bisciak; 30.05.2014
Большое спасибо!! :) ты здорово помог :)
- person user3626393; 30.05.2014