【问题标题】:Using Enter Key instead of Left Click to fire a Button only when button.isFocused() is true仅当 button.isFocused() 为 true 时才使用 Enter 键而不是左键单击来触发 Button
【发布时间】:2020-02-26 02:28:29
【问题描述】:

我用一个名为“okayButton”的按钮编写了一个 javaFX 程序,每次单击它时,程序都会在命令行中打印一条消息。

我的主要问题是如何仅在 OKButton.isFocused() 返回 true 时通过输入来使用此按钮

这是我的代码的一部分。在哪里点击按钮做它的工作。输入我想要的相同的东西:

okayButton.setOnAction(event -> {
        // Do what ever you want to your button do. Like :
        System.Out.Print("Okay Button Fired (Clicked or Pressed");
    }
    );

当然我可以使用java和windows默认的空格键,但我也需要输入键。

【问题讨论】:

    标签: button javafx enter actionevent


    【解决方案1】:

    我在几个不同的页面中找到了我的答案,我会给你最好和最简单的一个:

    使用 setOnKeyPressedFire 方法

    okayButton.setOnKeyPressed(event -> {
            if (event.getCode().equals(KeyCode.ENTER)) {
                okayButton.fire();
            }
        }
        );
    

    别忘了您也必须声明 setOnAction() 方法

    【讨论】:

    • 请注意,至少在 Windows 上,我相信自 JavaFX 9 以来默认按 Enter 可以工作。不确定其他平台(某些控件按顺序具有特定于平台的键绑定以适应平台的用户体验)。
    • 我认为在 windows 上触发按钮事件的关键是空格键,不确定 javafx 9 或更高版本。
    • 据我所知,@zinouteyar Space 适用于所有平台。但是 Windows 中的标准 UX 是 Enter 也会触发一个按钮(不仅仅是在 JavaFX 中,这就是我认为 FX9 添加该功能的原因)。
    猜你喜欢
    • 2015-05-22
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    相关资源
    最近更新 更多