我正在开发一个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) {
}
});
非常感谢任何帮助。 谢谢
最佳答案
这可以通过在使 JFrame 可聚焦后为其提供焦点来解决,但一旦失去焦点,KeyListener 将无法工作。我的主要建议是,您不要使用 KeyListener,而是使用 Key Bindings,因为这些函数是更高级别的构造,并且可以与 Swing 应用程序很好地配合,特别是在获得和失去焦点方面。关于这个主题有很多类似的帖子,如果您坚持下去,我会给您一些链接。
- Key Bindings Tutorial
- 可以在此处找到使用箭头键的键绑定(bind)示例:java keylistener not registering arrow keys
- 另一个例子:java keylistener not called
关于java - 将箭头键监听器添加到实现 ActionListener 的 Jframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10866501/