如何让我的自定义项KeyListener侦听ALT(或CTRL与此相关)+一个以上其他键的组合?
KeyListener
ALT
CTRL
假设我要应用程序执行11种不同的操作,具体取决于所按下的键的组合。ALT + 0- ALT + 9显然没有任何问题,但是对于ALT + 1 + 0(或“ ALT + 10”,它可以在帮助文件或类似文件中进行描述),我无法在网络上的任何地方(或脑海中)找到一个好的解决方案。我不相信这种带有计时器的解决方案是唯一可能的方法。
ALT + 0
ALT + 9
ALT + 1 + 0
预先感谢一百万个任何建议!
编辑: 动作0-9 +动作10 = 11个动作。谢谢@ X-Zero。
您不应将KeyListener用于这种类型的交互。而是使用键绑定,您可以在Java教程中了解这些键绑定。然后,您可以使用InputEvent掩码来表示何时不赞成使用各种修饰键。例如:
// Component that you want listening to your key JComponent component = ...; component.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, java.awt.event.InputEvent.CTRL_DOWN_MASK), "actionMapKey"); component.getActionMap().put("actionMapKey", someAction);
有关获取KeyStroke时可以使用的不同代码,请参见javadoc 中的KeyStroke。这些修饰符可以进行“或”运算以表示键的各种组合。如
KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, java.awt.event.InputEvent.CTRL_DOWN_MASK | java.awt.event.InputEvent.SHIFT_DOWN_MASK)
表示何时Ctrl + Shift按下琴键。
Ctrl + Shift
编辑: 正如已经指出的那样,这不能回答您的问题,而应作为一些好的建议。