【发布时间】:2016-04-20 17:46:19
【问题描述】:
在 Java 中,我检查了虚拟键代码列表,没有 '
我想知道是否必须检查是否按下了 Shift 键,然后检查是否也按下了逗号键,但我不确定如何在 KeyHandler 类中使用keyPressed 方法的 switch 语句。
【问题讨论】:
在 Java 中,我检查了虚拟键代码列表,没有 '
我想知道是否必须检查是否按下了 Shift 键,然后检查是否也按下了逗号键,但我不确定如何在 KeyHandler 类中使用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 仅在按键输出字符时触发,而不是在每次按键时触发。这种方法更有可能适用于其他类型的键盘。但是我没有尝试过,所以我不知道它是否会起作用。
【讨论】:
keyPressed 建议只会在shift + comma == < 的键盘上检测到<。
我相信您想分别对“”使用 VK_LESS 和 VK_GREATER。
【讨论】:
< 键的键盘相关,如果存在的话。在 QWERTY 键盘上,听者将报告 comma + shift。
你可以使用 KeyEvents.getKeyChar() 方法
public void keyPressed(KeyEvent e) {
if (evt.getKeyChar().equals("<")) {
/*your code*/
}
}
【讨论】: