不应将 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);
请参阅 javadoc for KeyStroke,了解在获取 KeyStroke 时可以使用的不同代码。这些修饰符可以一起 OR,以表示各种键组合。如
KeyStroke.getKeyStroke(KeyEvent.VK_SPACE,
java.awt.event.InputEvent.CTRL_DOWN_MASK
| java.awt.event.InputEvent.SHIFT_DOWN_MASK)
表示键按下的时间。Ctrl + Shift
编辑:正如已经指出的那样,这并不能回答你的问题,而应该被视为一些好的建议。