gpt4 book ai didi

java - 如何检查用户是否按下了某个键?

转载 作者:行者123 更新时间:2023-12-02 02:15:53 27 4
gpt4 key购买 nike

在java中,我有一个程序需要连续检查用户是否按下了某个键。所以在伪代码中,类似

if (isPressing("w")) {
// do somthing
}

最佳答案

在java中,你不会检查是否按下了某个键,而是 KeyEvent s。实现您目标的正确方法是注册 KeyEventDispatcher ,并实现它来维护所需 key 的状态:

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 - 如何检查用户是否按下了某个键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57304146/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com