我是編程的初學者,我一直在研究一個小項目,衆所周知的叫做Tetris的遊戲,我遇到了這個小問題,我希望你能幫助我解。我導入了:import java.awt.event.KeyAdapter
和 import java.awt.event.KeyEvent
能夠使用我的鍵盤玩遊戲,但是當我擴展我創建的課程以使用密鑰時,它向我顯示錯誤!在java中使用keyAdapter和keyEvent時出錯
下面是代碼:
addKeyListener(new TAdapter());
錯誤發生在這裏說這樣的:
The method addKeyListener(keyListener) in the type Component is not applicable for the arguments(Board.TAdapter)
類TAdapter擴展keyAdapter {//第二個發生在這裏:keyAdapter不能//解析爲鍵入 public void keyPressed(keyEvent e){//第三種情況發生在這裏:keyEvent //無法解析爲某個類型
if (!isStarted || curPiece.getShape() == Tetrominoes.NoShape) {
return;
}
int keycode = e.getKeyCode();
if (keycode == 'p' || keycode == 'P') {
pause();
return;
}
if (isPaused)
{return;}
switch (keycode) {
case KeyEvent.VK_LEFT:
tryMove(curPiece, curX - 1, curY);
break;
case KeyEvent.VK_RIGHT:
tryMove(curPiece, curX + 1, curY);
break;
case KeyEvent.VK_DOWN:
tryMove(curPiece.rotateRight(), curX, curY);
break;
case KeyEvent.VK_UP:
tryMove(curPiece.rotateLeft(), curX, curY);
break;
case KeyEvent.VK_SPACE:
dropDown();
break;
case 'd':
oneLineDown();
break;
case 'D':
oneLineDown();
break;
}
}
任何拼寫:不使用keyEvent/listeners。相反,使用keyBindings通過actionMap/inputMap – kleopatra