javafx:如何将Enter键绑定到按钮并在单击时触发事件?

myn*_*EFF 9 java javafx

基本上,我有一个okayButton位于a中stage,当它被点击时,它会执行一系列任务.现在我想将Enter键绑定到此按钮,以便在单击它或按下ENTER键时,它会执行任务列表.

    okayButton.setOnAction(e -> {       
           .........
        }
    });
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?我已经阅读了以下帖子.然而,它并没有帮助我实现我想做的事情.

Dic*_*ici 21

首先,在按钮上设置一个hanlder:

okayButton.setOnAction(e -> {       
       ......
});
Run Code Online (Sandbox Code Playgroud)

如果按钮具有焦点,则按Enter将自动调用此处理程序.否则,您可以在您的start方法中执行此操作:

@Override
public void start(Stage primaryStage) {
      // ...
      Node root = ...;
      setGlobalEventHandler(root);

      Scene scene = new Scene(root, 0, 0);
      primaryStage.setScene(scene);
      primaryStage.show();
}

private void setGlobalEventHandler(Node root) {
    root.addEventHandler(KeyEvent.KEY_PRESSED, ev -> {
        if (ev.getCode() == KeyCode.ENTER) {
           okayButton.fire();
           ev.consume(); 
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

如果您只有一个此类按钮,则可以使用以下方法.

okayButton.setDefaultButton(true);
Run Code Online (Sandbox Code Playgroud)