我有一个用于键盘轮询的简单单例,它实现 keyListener 只是为了改变布尔值的状态。我通过 getKeyListener() 获取 keyListener 对象。我不确定这是否是要走的路,但代码有效。可能有更好的方法来实现这一点吗?
更新:使用 bitset 轮询键输入的更简单方法
package Singleton;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.BitSet;
public enum bitKeyProcessor implements KeyListener{
INSTANCE;
private final BitSet bitset = new BitSet();
@Override
public void keyPressed(KeyEvent e) {
bitset.set(e.getKeyCode());
}
@Override
public void keyReleased(KeyEvent e) {
try{bitset.clear(e.getKeyCode());}
catch(Exception ex) {ex.printStackTrace();}
}
public void keyTyped(KeyEvent e) {};
public boolean isUp(){
if(bitset.get(KeyEvent.VK_UP))
return true;
return false;
}
....
public boolean isUpRight(){
if( isUp() && isRight())
return true;
return false;
}