Java 无法实现KeyListener

Java 无法实现KeyListener,java,keylistener,Java,Keylistener,我正在做一个简单的游戏,我只是想实现一个KeyListener。它告诉我必须实现抽象方法KeyReleased,但我已经实现了三个KeyListener方法(我想)。任何帮助都将不胜感激。代码如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class mainGame extends JFrame implements KeyListener{ JPanel pane4=new JPane

我正在做一个简单的游戏,我只是想实现一个KeyListener。它告诉我必须实现抽象方法KeyReleased,但我已经实现了三个KeyListener方法(我想)。任何帮助都将不胜感激。代码如下:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class mainGame extends JFrame implements KeyListener{
JPanel pane4=new JPanel();

public static void main (String [] args){
    new mainGame();
}
public mainGame(){
    super ("game");
    setSize(800,600);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setResizable(false);
    setLocationRelativeTo(null);
    pane4.addKeyListener(this);
    add(pane4);
    setVisible(true);
}
public void KeyTyped(KeyEvent e){
    //not using this method
}
public void KeyPressed(KeyEvent e){

    int keyID=e.getKeyCode();

    if (keyID==e.VK_ESCAPE){
        dispose();
        menu.main(null);
    }
    else if (keyID==e.VK_KP_RIGHT){

    }
    else if (keyID==e.VK_KP_RIGHT){

    }


}
public void KeyReleased(KeyEvent e){
    //not using this method
}

}资本化很重要。它是
keyreased
而不是
keyreased
。投票结束是一个印刷错误


为了防止将来出现类似问题,请在您认为应该覆盖super方法的任何方法之前始终使用
@Override
注释。这样做会让编译器警告您任何错误。e、 g

@Override
public void KeyReleased(KeyEvent e){
    //
}
上面的代码将导致编译器错误,并提示您需要修复方法签名中的某些内容以使其适合

其他无关要点:

  • 最好避免让GUI类实现侦听器接口,因为这会让类承担太多的责任。最好使用匿名内部类(如果您不熟悉这些类,请查找它们),或者使用私有内部类或独立类
  • 您最好使用键绑定而不是键侦听器来对非文本组件的Swing按键做出反应
      资本化很重要。它是
      keyreased
      而不是
      keyreased
      。投票结束是一个印刷错误


      为了防止将来出现类似问题,请在您认为应该覆盖super方法的任何方法之前始终使用
      @Override
      注释。这样做会让编译器警告您任何错误。e、 g

      @Override
      public void KeyReleased(KeyEvent e){
          //
      }
      
      上面的代码将导致编译器错误,并提示您需要修复方法签名中的某些内容以使其适合

      其他无关要点:

      • 最好避免让GUI类实现侦听器接口,因为这会让类承担太多的责任。最好使用匿名内部类(如果您不熟悉这些类,请查找它们),或者使用私有内部类或独立类
      • 您最好使用键绑定而不是键侦听器来对非文本组件的Swing按键做出反应
      资本化很重要。它是
      keyreased
      而不是
      keyreased
      。投票关闭是一个印刷错误。为了防止将来出现类似问题,请在您认为应该覆盖超级方法的任何方法之前始终使用
      @Override
      注释。这样做会让编译器警告您任何错误。大写很重要。它是
      keyreased
      而不是
      keyreased
      。投票关闭是一个印刷错误。为了防止将来出现类似问题,请在您认为应该覆盖超级方法的任何方法之前始终使用
      @Override
      注释。这样做会让编译器警告您任何错误。