Java如何检查用户是否按下了按键?

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如何检查用户是否按下了按键? 的全部内容, 来源链接: utcz.com/qa/433790.html

回到顶部