如何在JavaFX2中拿起正在按下的Enter键?

2022-09-01 07:57:12

我有一个用于输入搜索词的文本字段,以及一个用于“转到”的按钮。但是在JavaFX2中,我如何使它按文本字段中的Enter键可以执行操作?

谢谢:)


答案 1

我假设您希望在用户仅在具有焦点时按 Enter 时发生这种情况。您需要使用软件包外并执行如下操作:TextFieldKeyEventjavafx.scene.input

field.setOnKeyPressed(new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent ke) {
        if (ke.getCode().equals(KeyCode.ENTER)) {
            doSomething();
        }
    }
});

使用 lambda:

field.setOnKeyPressed( event -> {
  if( event.getCode() == KeyCode.ENTER ) {
    doSomething();
  }
} );

答案 2

可以使用 TextField 的 onAction 属性,并将其绑定到控制器中的方法。

@FXML
public void onEnter(ActionEvent ae){
   System.out.println("test") ;
}

在您的 FXML 文件中:

<TextField fx:id="textfield" layoutX="29.0" layoutY="298.0" onAction="#onEnter" prefWidth="121.0" />

推荐