在Java中,我有一个程序需要连续检查用户是否按下了键。所以在伪代码中,像
if (isPressing("w"))
{
//do somthing
}
提前致谢!
在Java中,你不检查是否有键被按下,而不是你听到KeyEvent
秒。实现目标的正确方法是注册一个KeyEventDispatcher
,并实现它以维持所需密钥的状态:
import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;
public class IsKeyPressed {
private static volatile boolean wPressed = false;
public static boolean isWPressed() {
synchronized (IsKeyPressed.class) {
return wPressed;
}
}
public static void main(String[] args) {
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent ke) {
synchronized (IsKeyPressed.class) {
switch (ke.getID()) {
case KeyEvent.KEY_PRESSED:
if (ke.getKeyCode() == KeyEvent.VK_W) {
wPressed = true;
}
break;
case KeyEvent.KEY_RELEASED:
if (ke.getKeyCode() == KeyEvent.VK_W) {
wPressed = false;
}
break;
}
return false;
}
}
});
}
}
然后,您可以随时使用:
if (IsKeyPressed.isWPressed()) {
// do your thing.
}
当然,您可以使用相同的方法来实现isPressing("<some key>")
键映射及其包裹在状态中的状态IsKeyPressed
。
问题内容: 我是Java的初学者,一直在研究如何检测用户是否按下了某个键(例如箭头键)。显然,有很多方法可以做到这一点,我发现此方法应该对我有用: 问题是我不知道什么是KeyEvent。 当我调用该方法并给我举个例子时,谁能告诉我在括号中加什么? PS:不要把我发送到其他站点,我可能已经看过了,他们只是让我更加困惑… 问题答案: public class KeyEvent extends Inpu
我有一个Java函数,我想在其中测试控制键是否被按住。我该怎么做? 编辑:我正在使用摆动作为gui。
提前感谢!
好的,在这被标记为可能的重复之前,我已经尝试了以下代码:
问题内容: 有没有一种方法可以检测JavaScript中的鼠标按钮当前是否处于按下状态? 我知道“ mousedown”事件,但这不是我所需要的。按下鼠标按钮后的一段时间,我希望能够检测它是否仍被按下。 这可能吗? 问题答案: 关于Pax的解决方案:如果用户有意或无意地单击了多个按钮,则该按钮将不起作用。不要问我我怎么知道:-(。 正确的代码应如下所示: 通过这样的测试: 如果您想知道按下了什么按
问题内容: 我正在使用Qt Designer构建UI,并且我希望按钮使用不同的修饰符执行不同的操作。因此,我认为我可以调用具有动态字符串属性的函数,这些函数将根据修饰符执行操作。 如果有人知道更简单的方法,我将不胜感激。 问题答案: 看起来您需要做的就是检查按钮处理程序中的keyboardModifiers,并根据需要选择其他操作。可以对各种修饰符进行“或”运算以检查多键组合: PyQt5 : P