将Arrow Keylistener添加到实现ActionListener的Jframe中

You*_*sef 2 java events swing keylistener jframe

我正在研究一个java应用程序.我想在箭头键上实现KeyListener.我有一个扩展JFrame并实现ActionListener的类

public class MyClass extends JFrame implements ActionListener{
}
Run Code Online (Sandbox Code Playgroud)

如何在此框架中的箭头键上添加键盘侦听器?

我试图在构造函数中执行以下操作,但它不起作用:

    this.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
            if(e.getKeyCode() == KeyEvent.VK_UP)
            {
               //DO Some things
            }
        }

        @Override
        public void keyTyped(KeyEvent e) {

        }

        @Override
        public void keyReleased(KeyEvent e) {

        }

    });
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.谢谢

Hov*_*els 5

这可以通过在使JFrame成为焦点之后为焦点提供焦点来解决,但是一旦失去焦点,KeyListener将无法工作.我的主要建议是你不使用KeyListener而是使用Key Bindings,因为这些函数是更高级别的结构,并且适用于Swing应用程序,特别是在获得和失去焦点方面.关于这个主题有很多类似的帖子,如果你坚持下去,我会给你一些链接.

  • 键绑定比KeyListener更有用 (3认同)