Как проверить, нажата ли клавиша левой угловой скобки?
В Java я проверил список кодов виртуальных ключей, и для "<" не существует VK. Я пробовал "VK_LESS" с моей программой (звучит так, как будто это может быть '<'), но это тоже не сработало.
Мне интересно, нужно ли мне проверять, нажата ли клавиша Shift, а затем проверить, нажата ли клавиша запятой, но я не уверен, как это сделать в классе KeyHandler, используя оператор switch для метода keyPressed.
3 ответа
KeyHandler keyPressed
метод получит KeyEvent
, Ты можешь позвонить isShiftDown()
на что KeyEvent
чтобы увидеть, нажата ли клавиша Shift в данный момент.
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_COMMA && e.isShiftDown()) {
// do your thing!
}
}
Вы также можете попробовать сделать:
public void keyTyped(KeyEvent e) {
if (e.getKeyChar() == '<') {
...
}
}
Обратите внимание на использование keyTyped
скорее, чем keyPressed
, keyTyped
срабатывает только тогда, когда нажатие клавиши выводит символ, а не при каждом нажатии клавиши. Этот метод больше подходит для других типов клавиатуры. Но я не пробовал, поэтому не знаю, сработает ли это вообще.
Вы можете использовать метод KeyEvents.getKeyChar()
public void keyPressed(KeyEvent e) {
if (evt.getKeyChar().equals("<")) {
/*your code*/
}
}
Я полагаю, что вы хотите использовать VK_LESS и VK_GREATER для "<" и ">" соответственно.