如何检查是否按下了左尖括号键?
How do I check if the left angle bracket key is pressed?
在Java中,我检查了虚拟键码列表,没有'<'的VK。我已经尝试 "VK_LESS" 我的程序(听起来可能是 '<'),但也没有用。
我想知道是否必须检查是否按下了 Shift 键,然后检查是否也按下了 Comma 键,但我不确定如何在 KeyHandler class,对 keyPressed 方法使用 switch 语句。
KeyHandler keyPressed
方法将接收一个 KeyEvent
。您可以在 KeyEvent
上调用 isShiftDown()
以查看当前是否按下了 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
仅在按键输出字符时触发,而不是在每次按键时触发。此方法更可能适用于其他类型的键盘。但是我没试过,所以我完全不知道它是否有效。
我相信您会希望对“<”和“>”分别使用 VK_LESS 和 VK_GREATER。
您可以使用 KeyEvents.getKeyChar() 方法
public void keyPressed(KeyEvent e) {
if (evt.getKeyChar().equals("<")) {
/*your code*/
}
}
在Java中,我检查了虚拟键码列表,没有'<'的VK。我已经尝试 "VK_LESS" 我的程序(听起来可能是 '<'),但也没有用。
我想知道是否必须检查是否按下了 Shift 键,然后检查是否也按下了 Comma 键,但我不确定如何在 KeyHandler class,对 keyPressed 方法使用 switch 语句。
KeyHandler keyPressed
方法将接收一个 KeyEvent
。您可以在 KeyEvent
上调用 isShiftDown()
以查看当前是否按下了 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
仅在按键输出字符时触发,而不是在每次按键时触发。此方法更可能适用于其他类型的键盘。但是我没试过,所以我完全不知道它是否有效。
我相信您会希望对“<”和“>”分别使用 VK_LESS 和 VK_GREATER。
您可以使用 KeyEvents.getKeyChar() 方法
public void keyPressed(KeyEvent e) {
if (evt.getKeyChar().equals("<")) {
/*your code*/
}
}