如何让我的自定义项KeyListener
侦听ALT
(或CTRL
与此相关)+一个以上其他键的组合?
假设我要应用程序执行11种不同的操作,具体取决于所按下的键的组合。ALT + 0
- ALT + 9
显然没有任何问题,但是对于ALT + 1 + 0
(或“ ALT +
10”,它可以在帮助文件或类似文件中进行描述),我无法在网络上的任何地方(或脑海中)找到一个好的解决方案。我不相信这种带有计时器的解决方案是唯一可能的方法。
预先感谢一百万个任何建议!
编辑: 动作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
按下琴键。
编辑: 正如已经指出的那样,这不能回答您的问题,而应作为一些好的建议。
问题内容: 一个人如何实现KeyListener,以便我可以创建一个两个人使用的系统,一个人使用“。” 和’/’来控制角色,并且其他人可以使用箭头键而不会彼此干扰?我现在所拥有的方式是,当一个人按住箭头键时,他们的角色会移动,但是当您使用另一个玩家的控件时,第一个人的角色就会停止。 问题答案: 创建一个标记当前按下/按下的键。 然后,在游戏循环中,您可以根据是否在地图中按下按键来移动对象。 例如:
问题内容: 您能帮我重构此代码: 请同时说明如何检查上/下箭头键。谢谢! 问题答案:
我正在做一个游戏,它需要键盘输入,很多时候你需要几个键同时按下。例如,你想按住空格来射击,向上箭头来推进,向左或向右箭头来转动。然而,箭头键的作用非常奇怪。大多数情况下,keypressed方法无法识别按下的第三个箭头键,有时甚至更奇怪:如果按下的是其他键,它会检测出错误的键。我明白这很令人困惑,所以我做了一个程序来展示它: 这里有几件事要用这个程序来说明我的意思:-保持空格,向上箭头,然后试着按
问题内容: 我需要一个示例,该示例如何添加一个键盘处理程序来检测何时按下+ ,+ ,+ 。 我以前是通过菜单快捷键来完成此操作的,但是没有成功。 问题答案: 您可以将KeyListeners添加到任何组件(f)
问题内容: 我目前正在尝试在程序中实现一个键侦听器,以便当我按下箭头键时它会执行一个操作,程序中的对象向左或向右移动。 这是我程序中的移动方法 我想知道程序应该如何读入(KeyEvent)e。我真的不能输入箭头键。 请帮忙! 编辑:我还需要知道我需要添加到代码中的内容,以便我的程序在继续使用另一种方法之前要等待大约700毫秒的时间才能进行键输入 问题答案: http://docs.oracle.c
问题内容: 我正在使用Qt Designer构建UI,并且我希望按钮使用不同的修饰符执行不同的操作。因此,我认为我可以调用具有动态字符串属性的函数,这些函数将根据修饰符执行操作。 如果有人知道更简单的方法,我将不胜感激。 问题答案: 看起来您需要做的就是检查按钮处理程序中的keyboardModifiers,并根据需要选择其他操作。可以对各种修饰符进行“或”运算以检查多键组合: PyQt5 : P