Это не тривиальная проблема, и Java не дает вам способа сделать это элегантно. Вы можете использовать решение, подобное предложенному banjollity, но даже оно не будет работать постоянно, если ваши ошибочные щелчки мыши откроют другое полноразмерное окно, открытое в настоящее время на панели задач, например.
Дело в том, что Java по умолчанию дает разработчикам очень мало контроля над ОС. Это связано с двумя основными причинами: безопасность (как указано в документации java) и тот факт, что разные операционные системы обрабатывают события совершенно по-разному, и создание единой модели для представления всех из них, вероятно, не имеет большого смысла.
Итак, чтобы ответить на ваш вопрос, я представляю, что вам нужно какое-то поведение для вашей программы, когда она прослушивает нажатия клавиш глобально, а не только в вашем приложении. Что-то вроде этого потребует от вас доступа к функциональности, предлагаемой выбранной вами ОС, и для доступа к ней в Java вам потребуется сделать это через уровень Java Native Interface (JNI).
Итак, что вы хотите сделать, это:
Реализуйте программу на C, которая будет прослушивать глобальные нажатия клавиш в вашей ОС, если эта ОС является Windows, чем искать документацию по хукам Windows, которая хорошо документирована Microsoft и MSDN в Интернете и других местах. Если ваша операционная система Linux или Mac OS X, вам нужно будет прослушивать глобальные нажатия клавиш, используя библиотеки разработки X11. Это можно сделать на дистрибутиве Ubuunutu Linux в соответствии с инструкциями, которые я написал на http://ubuntuforums.org/showthread.php?t=864566
Подключите ваш код C к вашему Java-коду через JNI. Этот шаг на самом деле является более легким шагом. Следуйте процедуре, которую я использую в моем руководстве по адресу http://ubuntuforums.org/showthread.php?t=864566 для обоих окон и Linux, поскольку процедура подключения вашего кода C к вашему Java-коду будет идентична в обеих ОС.
Важно помнить, что намного легче заставить работать ваш код JNI, если вы сначала запрограммируете и отладите свой код C / C ++ и убедитесь, что он работает. Тогда его легко интегрировать с Java.