java - 在类中创建新的 KeyListener 时出现问题

标签 java keylistener

我在向 Java 程序添加 key 监听器时遇到严重问题。 我想避免使用 addKeyListener() 方法,因此我尝试了以下解决方案:

public class game implements KeyListener{
    @Override
    public void keyTyped(KeyEvent e) {
        return;
    }

    @Override
    public void keyPressed(KeyEvent e) {
        System.out.println("test");
        return;
    }

    @Override
    public void keyReleased(KeyEvent e) {
        return;
    }
}

并且:

public class game{
     KeyListener listener = new KeyListener(){
         @Override
         public void keyTyped(KeyEvent e) {
             return;
         }

         @Override
         public void keyPressed(KeyEvent e) {
             System.out.println("test");
             return;
         }

         @Override
         public void keyReleased(KeyEvent e) {
             return;
         }
    }

}

他们都不适合我。 我真的必须在图形类中使用 addKeyListener() 吗?我正在努力避免这种情况。 提前致谢。

最佳答案

您是否有特定原因想要避免使用 addKeyListener()?

它是 KeyListener 的重要组成部分,因此您无法避免使用它。

不过应该​​相对容易实现。如果您使用 JFrame,则构造函数中的以下代码应该可以工作:

public class Game implements KeyListener{

    public Game(){
        JFrame jframe = new JFrame();
        jframe.addKeyListener(this);
    }

    //implement other KeyListener methods
}

这样,Game 类本身就充当监听器,并且可以实现所有必要的方法。

希望这有帮助!

关于java - 在类中创建新的 KeyListener 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62377982/

相关文章:

java - 如何在 JFrame 窗口中获得可关闭的全屏?

java - 如何让keyevent在小程序中工作?

java - 使用Java,如何在不使用GUI组件的情况下检测按键?

java - Guava 图书馆 : List with n instances

java - 可调用线程与可运行线程与扩展线程

java - 用于填充不同列表的三元运算符 - 编译器错误

java - 防止 KeyListener 中的字符添加到字符串中

java - 为什么 KeyEvent 虽然实现了 KeyListener 接口(interface)但不起作用?

java - 下载后过期的临时 URL

java - Sikuli 产生不可靠/随机的结果