在文本字段中按下回车键时触发点击事件

firing a click event when pressing enter inside a textfield

抱歉提出问题...但我又有点卡住了。

我问这些问题是为了充分利用我的 time/learning。

我正在尝试使用回车键触发点击事件(因此当我手动点击登录按钮时)。

我目前的代码

代码

 usernameField.setOnKeyPressed((KeyEvent event) -> {
        if(event.getCode()==KeyCode.ENTER){
            loginBtn.fire();
            System.out.println("Worked");
        }
    });

几乎可以达到预期的效果。出现系统输出消息,但现在会触发 loginBtn。

我正在使用 JavaFX,JFXButtons/textboxes 如果这有区别的话

当用户按下回车键时,文本字段会触发动作事件。所以你只需要

EventHandler<ActionEvent> loginHandler = e -> {
    // handle login here...
};

usernameTextField.setOnAction(loginHandler);
loginBtn.setOnAction(loginHandler);

或者,如果您愿意;

usernameTextField.setOnAction(e -> handleLogin());
loginBtn.setOnAction(e -> handleLogin());

// ...

private void handleLogin() {
    // handle login here...
}

如果您使用的是 FXML,则可以将两个 onAction 处理程序映射到相同的控制器方法:

<TextField fx:id="usernameTextField" onAction="#login" />
<Button fx:id="loginBtn" text="Log In" onAction="#login" />

然后在控制器中

public class Controller {

    // ...

    @FXML
    private void login() {
        // login action here..
    }

    // ...

}