キーボードのポーリングに使用されるこの単純なシングルトンがあります。これは、ブール値の状態を変更するためだけに keyListener を実装します。getgetKeyListener() を介して keyListener オブジェクトを取得します。これが正しい方法かどうかはわかりませんが、コードは機能します。これを達成するためのより良い方法があるでしょうか?
更新: ビットセットを使用してキー入力をポーリングする簡単な方法
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;
}