以下代码不起作用。 我正在尝试使用按键方法向左,向右,向上和向下移动播放器,但是当我按按键时它没有响应。 我并没有将整个代码粘贴到移动框的那一部分,还有其他if语句来实现其他内容的移动。


public class innerClassKeyPressed {


   void  keyPressed( KeyEvent e)
   {
    int key= e.getKeyCode();
    if(key==KeyEvent.VK_LEFT){
        dx=-1;
    }
     if(key==KeyEvent.VK_RIGHT){

         dx=1;
    }
    if (key==KeyEvent.VK_UP){
        dy=-1;
    }
     if (key==KeyEvent.VK_DOWN){
        dy=1;
     }
      if (key == 82)
     {
          initLevel(currlevel);

     } //R
     if (key == 78)
     {
         currlevel++;
          initLevel(currlevel);
      } 

      if ( (key == KeyEvent.VK_LEFT ) && ( key  == KeyEvent.VK_RIGHT ) && 
      (key == KeyEvent.VK_UP ) && ( key == KeyEvent.VK_DOWN )) { 

         return;
       }


        for (int row=0; row < myArray.length; row++)

        {
            for (int column=0; column < myArray[row].length; column++)
            {
                 if( myArray[row][column]==  Contents.PLAYER)                       { 
                        if (myArray[row+dy][column+dx] == Contents.BOX)
                        {

                            if (myArray[row+dy*2][column+dx*2] == Contents.EMPTY)

                             {

                                myArray[row+dy][column+dx]= Contents.PLAYER; 
                                 myArray[row][column]= Contents.EMPTY;

                                myArray[row+dy*2][column+dx*2]= Contents.BOX;

===============>>#1 票数:1

KeyListeners器因无法正常运行而臭名昭著(实际上,它们确实在工作,只是不是您认为的那样)。

KeyListener的问题在于,它们只会在注册其组件的组件具有焦点并具有焦点(也称为键盘焦点)时作出反应。

而是应使用按键绑定,因为它们允许确定触发它们的焦点状态。

===============>>#2 票数:0

当我猜测您使用JFrame和Canvas绘制播放器时,我还假定这没有用,因为您尚未将KeyListener添加到JFrame中。

例如:

JFrame frame = new JFrame();
frame.addKeyListener(keylistener);

  ask by Nadir Khan translate from so

未解决问题?本站智能推荐:

2回复

KeyListener无法正常工作

这是我的课程,这可能是我非常愚蠢的事情,但我的KeyListener不起作用。 控制台上没有任何内容。
1回复

Applet - KeyListener无法正常工作

当我启动我的applet时,我得不到关键监听器的响应。 我该如何解决? 下面是代码。
2回复

我的KeyListener无法读取按键输入

现在,我有一个扩展JPanel并实现KeyListener 。 我已经将该类实例化为另一个在我的循环中运行它的类。 KeyListener类看起来像 我在另一个类中实现了这一点,该类在Game类中很好地利用了MouseListener 。 但是由于某种原因,它不会听键盘。
4回复

按下回车键时,Textfield中的KeyListener无法触发

我正在尝试制作一个可以在Java中将华氏温度转换为摄氏温度的程序。 在程序中,我有2个标签和1个TextField用于输入。 当用户输入温度并按Enter时,我想转换温度。 为此,我在我的文本字段中添加了一个关键侦听器,但是它不起作用。 当我按Enter时,听众根本不会开火。 这是
4回复

如何使用KeyListener

我正在尝试在我的程序中实现一个keylistener,以便当我按下箭头键时它会执行一个动作,程序中的对象向左或向右移动。 这是我程序中的移动方法 我想知道程序应该如何读入(KeyEvent)e。 我真的不能输入一个箭头键.... 请帮忙! 编辑:我还需要知道我需要添加
1回复

在Java中禁用Keylistener

在我的程序中,我在画布上设置了keyListener。 它工作得很好,但是当我执行Thread.sleep(1000)时,keyListener仍在监听和读取键,但是结果仅在睡眠时间结束时显示。 如何使keyListener不读取或监听在睡眠期间键入的键?
1回复

KeyListener不起作用

由于某种原因,我的KeyListener只是不响应KeyPressed事件。 如果有关系,我使用的是Ubuntu 12.04。 每当按下一个键时,它应该打印“ Key Pressed”,但不是这样。 这是代码:
2回复

没有来自KeyListener的回复

我正在尝试制作一个简单的Java程序,但无法从中获得任何输入。 谁能提出解决方案?
1回复

解释Java中的KeyListener

我是Java的新手,并且正在使用机械手课。 我想为我的机器人设置紧急停止功能,所以当发生故障时,我可以使自动化结束。 到目前为止,虽然机器人很容易,但关键听众却逃不过我,请以“我的第一个关键听众”的风格进行说明,谢谢! 这是我到目前为止的内容: 还有其他代码,但这就是所有与我的问题
1回复

如何使KeyListener发挥作用?

我正在学习Java,并尝试为我做一些测试来创建一个小小的Pong游戏,但是我无法在代码中使左右箭头键起作用,因此我遵循了一些教程,但仍然不起作用。 我的敌人和游戏中的球都工作正常,所有东西都有碰撞,但是我仍然无法使控件/按键起作用。 这是我正在使用的代码以及我的类Player(我认为错误在这里,