private class KeyHandler implements KeyEventDispatcher{
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_RIGHT){
tetrominoList.get(currentPiece).moveRight();
}else if(e.getKeyCode() == KeyEvent.VK_LEFT){
tetrominoList.get(currentPiece).moveLeft();
}else if (e.getKeyCode() == KeyEvent.VK_UP){
System.out.print("k");
tetrominoList.get(currentPiece).rotate();
}
return false;
}
當我按向上箭頭一次時,此代碼返回「kk」。我如何配置java或我的電腦,使它只註冊一個按鍵而不是兩個?在java keyhandler中降低鍵盤靈敏度?
編輯:這是我的臨時解決方案
private class KeyHandler implements KeyEventDispatcher{
int counter = 0;
public boolean dispatchKeyEvent(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_RIGHT){
tetrominoList.get(currentPiece).moveRight();
}else if(e.getKeyCode() == KeyEvent.VK_LEFT){
tetrominoList.get(currentPiece).moveLeft();
}else if (e.getKeyCode() == KeyEvent.VK_UP){
counter++;
if(counter == 2){
System.out.print("k");
tetrominoList.get(currentPiece).rotate();
counter = 0;
}
}
您的解決方案似乎是合理的。 – Maroun