JFrame的使用actionlistener的keylistener

时间:2017-03-04 14:02:02

标签: java swing jframe actionlistener keylistener

我试图将KeyListener添加到我的JFrame中,按下的键将执行ActionListener类中的所有代码。

示例:

当我按F1时,它将触发ActionListener类。做所有的指示。

有任何帮助吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

没有KeyListener"来电"一个ActionListener。而是使用所有指令创建一个单独的方法,并让KeyListener和ActionListener都调用相同的方法。

同样在这种情况下,不要使用KeyListener,当键盘焦点可以改变时,其行为反复无常,而更倾向于使用Key Bindings

答案 1 :(得分:1)

  

按下的键将执行ActionListener类中的所有代码。

您可以使用ActionListener而不是ActionAction与ActionListner基本相同,但您可以定义额外的属性,以便更容易使用键盘。阅读How to Use Actions上Swing教程中的部分,了解更多信息和工作示例。作为旁注,Swing组件旨在使用Actions。

创建Action后,您有不同的选择:

  1. 您可以将Action添加到JMenuItem,如果您定义了"加速器"键,然后按下F1键时将自动调用Action

  2. 如果您不使用JMenuItem,则需要手动将KeyStroke绑定到Action。有关手动添加绑定的基础知识,请参阅[如何制作和删除键绑定]的Swing教程中的部分。(http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html#howto)。