我是一个编程初学者,我一直在做一个小项目,著名的游戏叫做俄罗斯方块,我遇到了这个小问题,我希望你能帮助我解决这个问题。我导入了:导入java.awt.event.keyadapter
和导入java.awt.event.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;
}
}
您应该避免KeyListener
,它们有许多与焦点相关的问题,它们还会使代码膨胀,并使管理更加困难。
相反,您应该利用键绑定API,它提供了一个更可重用的API,并提供了确定组件需要的焦点级别的方法,以便累加键事件
在我看来,这应该是非常简单的,现在我使用这个print语句来查看类是否真的识别按键:public class TAdapter extends KeyAdapter{public void keyPressed(KeyEvent e){tank.keyPressed(e);system.out.println(“presseddddddddddddddddddddd”);} 但是,没有输出。所以我
我试着从用户那里获取一个输入,让这个程序从一些更复杂的东西开始。然而,无论我尝试什么,我都会遇到以下错误: 我在这里运行此代码: 任何帮助都非常感谢!
无效的流头:0000002b at java.io.objectinPutStream.ReadStreamHeader(ObjectinPutStream.java:781)at java.io.objectinPutStream.(ObjectinPutStream.java:278)at servicerEquest.run(servicerEquest.java:24)at java.ut
一个在设置了Keylistener或Keyadapter类并重写了keyPressed之后,另两个在程序中如何获得键盘响应呢?例如,假设我已经设置了Keyadapter类: 我将如何从那里开始,使它能够实际检测到它,并在我按w时显示字符串?没有任何方法,我可以在main方法中调用,使它开始检查,是吗?如果没有,JVM如何知道开始检查main中是否没有方法告诉它? 谢谢你抽出时间。
介绍 (Introduction) KeyAdapter类是一个用于接收键盘事件的抽象(适配器)类。 此类的所有方法都是空的。 此类是用于创建侦听器对象的便捷类。 类声明 以下是java.awt.event.KeyAdapter类的声明: public abstract class KeyAdapter extends Object implements KeyListener
介绍 (Introduction) KeyAdapter类是一个用于接收键盘事件的抽象(适配器)类。 此类的所有方法都是空的。 此类是用于创建侦听器对象的便捷类。 Class 声明 (Class Declaration) 以下是java.awt.event.KeyAdapter类的声明 - public abstract class KeyAdapter extends Object