我试图将KeyListener添加到我的JFrame中,按下的键将执行ActionListener类中的所有代码。
示例:
当我按F1时,它将触发ActionListener类。做所有的指示。
有任何帮助吗? 提前谢谢。
答案 0 :(得分:1)
没有KeyListener"来电"一个ActionListener。而是使用所有指令创建一个单独的方法,并让KeyListener和ActionListener都调用相同的方法。
同样在这种情况下,不要使用KeyListener,当键盘焦点可以改变时,其行为反复无常,而更倾向于使用Key Bindings。
答案 1 :(得分:1)
按下的键将执行ActionListener类中的所有代码。
您可以使用ActionListener
而不是Action
。 Action
与ActionListner基本相同,但您可以定义额外的属性,以便更容易使用键盘。阅读How to Use Actions上Swing教程中的部分,了解更多信息和工作示例。作为旁注,Swing组件旨在使用Actions。
创建Action
后,您有不同的选择:
您可以将Action
添加到JMenuItem
,如果您定义了"加速器"键,然后按下F1键时将自动调用Action
。
如果您不使用JMenuItem
,则需要手动将KeyStroke
绑定到Action
。有关手动添加绑定的基础知识,请参阅[如何制作和删除键绑定]的Swing教程中的部分。(http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html#howto)。