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 또는 내 컴퓨터를 구성하는 방법은 무엇입니까?자바 키 핸들러의 키보드 민감도가 낮습니까?
편집 : 이것은 내가 틀렸을 수도 내 임시 방편
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