如何在 Java 中监控击键
在 Java 中,检测击键涉及“监听”KeyEvent,而不是显式检查特定键是否被按下。按下。以下是实现连续击键监控的方法:
在伪代码中,您所需的功能转换为:
if (isPressing("w")) { // perform an action }
实现击键监控:
至监控击键,需要注册一个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; } } }); } }
用法:
注册 KeyEventDispatcher 后,您可以使用以下命令检查键的状态:
if (IsKeyPressed.isWPressed()) { // take desired action }
多个键:
要监视多个键,您可以扩展 IsKeyPressed 类以包含键及其各自状态的映射。
以上是如何在Java中持续监控击键?的详细内容。更多信息请关注PHP中文网其他相关文章!