【发布时间】:2014-08-16 12:41:12
【问题描述】:
我是一名编程初学者,我一直在从事一个小项目,即著名的俄罗斯方块游戏,我遇到了这个小问题,我希望你能帮助我解决问题。我导入了:import java.awt.event.KeyAdapter 和
import java.awt.event.KeyEvent 能够使用我的键盘玩游戏,但是当我扩展我创建的类以使用这些键时,它显示了一个错误!
代码如下:
addKeyListener(new TAdapter());
这里发生的错误是这样说的:
The method addKeyListener(keyListener) in the type Component is not applicable for the arguments(Board.TAdapter)
class TAdapter extends keyAdapter { // 第二个发生在这里:keyAdapter 不能 //resolved to a type 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。相反,通过 actionMap/inputMap 使用 keyBindings
标签: java swing keylistener