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

时间:2012-06-02 22:45:24

标签: java swing events jframe keylistener

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

的类
public class MyClass extends JFrame implements ActionListener{
}

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

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

    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) {

        }

    });

非常感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:5)

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