Я пытаюсь сделать программу горячих клавиш, которая работает в фоновом режиме, и я не могу понять, как заставить ее проверять, когда нажата определенная клавиша (в этом случае минус-ключ). Мне нужна программа, чтобы ждать нажатия клавиши, а затем программа проверяет, является ли этот ключ минус-ключом.В java Как проверить, нажимает ли пользователь определенный ключ?
Пример моей программы, которая теперь находится в псевдокоде, находится где-то вдоль этих строк.
while(true)
{
int pressedKey = userInputedKey;
if(pressedKey == KeyEvent.VK_MINUS)
{
//action to be executed
}
}
Я нашел много предложений по другим потокам использовать KeyListener, но я не мог использовать его должным образом, так что если ваш ответ является использование KeyListener, пожалуйста, объясните, как использовать его тщательно (чтобы быть точным, я дон Не понимаю, как при создании экземпляра KeyEvent у него уже есть вход любого ключа, который был нажат в качестве ключевого кода в этом KeyEvent, поэтому, если я использую его в вызове KeyListener, я не получу правильные результаты). Конечно, я мало знаю о KeyEvent или KeyListener, поэтому, возможно, я не пытался правильно решить проблему с помощью KeyListener.
Пожалуйста, обратитесь на [Как проверить, нажал ли пользователь клавишу?] (http://stackoverflow.com/questions/18037576/how-do-i-check-if-the-user-is-pressing-a-key) Или [Как определить, был ли нажат ключ в Java?] (Http://stackoverflow.com/questions/23841127/how-to-detect-if-a-key-was-pressed-in-java) –
Как проверить, нажат ли пользователь ключ? это тот поток, который я использовал для решения моих проблем, хотя главный ответ не решил его проблему (как показывают комментарии человека, который задал вопрос). – loserlobster
Что-то должно перехватить ключевое событие, и оно должно иметь фокус, поэтому оно не может работать в фоновом режиме. Представьте, что у вас открыто 5 программ, и вы фокусируетесь на одном. Вы не можете иметь все 5 событий перехвата, только один в фокусе. – user1803551