【发布时间】:2012-10-12 14:29:34
【问题描述】:
我需要在不使用基于事件的方法的情况下检查一个键的状态(无论它是否被按下)。存储关键状态不起作用;我需要检查密钥的实时状态。有人知道怎么做吗?平台为 JCreator v5.0 LE
【问题讨论】:
标签: java keyboard key keyboard-events jcreator
我需要在不使用基于事件的方法的情况下检查一个键的状态(无论它是否被按下)。存储关键状态不起作用;我需要检查密钥的实时状态。有人知道怎么做吗?平台为 JCreator v5.0 LE
【问题讨论】:
标签: java keyboard key keyboard-events jcreator
我不明白这一点,看看keyPressed()、keyReleased() 和keyTyped() 是如何在any 键被按下时被调用的,没有失败。
您还说存储状态不起作用。你有没有尝试过这样的事情?
boolean[] keys = new boolean[222]; // 222 is the highest keyCode value i know
public void keyPressed(KeyEvent e) { keys[e.getKeyCode()] = true; }
public void keyReleased(KeyEvent e) { keys[e.getKeyCode()] = false; }
// True is pressed, False is released
public boolean getState(int keyCode) {
return keys[keyCode];
}
这确实是检查按键“实时”状态的最合理方法。您不能不使用Listener 就向计算机询问密钥的状态。也许更多关于您需要“实时”状态的信息会给您一个更好的答案。
【讨论】:
keys[the_key] 将变为 true。如果不是,它将是false。我错过了什么吗?`