【问题标题】:JFrame's keylistener with actionlistenerJFrame 的 keylistener 和 actionlistener
【发布时间】:2017-07-24 15:01:51
【问题描述】:

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

例子:

当我按下 F1 时,它将触发 ActionListener 类。执行所有说明。

有什么帮助吗? 提前谢谢你。

【问题讨论】:

    标签: java swing jframe actionlistener keylistener


    【解决方案1】:

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

    同样在这种情况下,不要使用当键盘焦点发生变化时行为反复无常的 KeyListener,而应使用Key Bindings

    【讨论】:

      【解决方案2】:

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

      您可以使用Action,而不是使用ActionListenerAction 与 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)。

      【讨论】:

        猜你喜欢
        • 2012-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-22
        相关资源
        最近更新 更多