仅当Button.isFocused()为true时,使用Enter键而不是左键单击触发按钮

仅当Button.isFocused()为true时,使用Enter键而不是左键单击触发按钮,button,javafx,enter,actionevent,Button,Javafx,Enter,Actionevent,我用一个名为“okayButton”的按钮编写了一个javaFX程序,每次单击它,程序都会在命令行中打印一条消息 我的主要问题是,只有当okayButton.isFocused()返回true时,如何通过enter来使用此按钮 这是我代码的一部分。点击按钮做它的工作。我想通过enter输入相同的内容: okayButton.setOnAction(event -> { // Do what ever you want to your button do. Like :

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

我的主要问题是,只有当okayButton.isFocused()返回true时,如何通过enter来使用此按钮

这是我代码的一部分。点击按钮做它的工作。我想通过enter输入相同的内容:

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

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

我在两个不同的页面中找到了我的答案,我将为您提供最好、最简单的答案:

使用setOnKeyPressedFire方法

不要忘记还必须声明setOnAction()方法


请注意,至少在Windows上,我相信自JavaFX9以来,按Enter键在默认情况下是有效的。不确定其他平台(一些控件具有特定于平台的键绑定,以适应平台的用户体验)。我认为在windows上触发按钮事件的键是空格键,不确定javafx 9或更高版本。@Zinoteyar Space在所有平台上都能工作,据我所知。但是Windows中的标准UX是Enter也会启动一个按钮(不仅仅在JavaFX中,这就是为什么我认为FX9添加了该功能)。
okayButton.setOnKeyPressed(event -> {
        if (event.getCode().equals(KeyCode.ENTER)) {
            okayButton.fire();
        }
    }
    );