如何为鼠标单击事件调用相同的方法并在javafx中输入按键

时间:2017-09-18 16:36:29

标签: java javafx

@FXML
private void login(Event event) throws IOException {
    String userName = emailId.getText().trim();
    String password = passwordId.getText().trim();

    try {
        if(isValidCredentials(userName, password)){
            System.out.println("Login Successfull");
            Parent mainScreen = FXMLLoader.load(getClass().getResource("MainPage.fxml"));
            Scene mainScene = new Scene(mainScreen);
            Stage mainStage = (Stage) ((Node) event.getSource()).getScene().getWindow();
            mainStage.hide();
            mainStage.setScene(mainScene);
            mainStage.setTitle("Main Screen");
            mainStage.show();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }

}

在点击登录按钮时调用此登录方法。我想要的是在登录页面上按下回车键时要调用的相同方法。

1 个答案:

答案 0 :(得分:2)

您可以将登录按钮设为默认按钮:这样当按下回车键时它会触发动作事件:

<Button fx:id="loginButton" text="Login" onAction="#login" defaultButton="true" />

除非按下 Enter 按键的控件具有键盘焦点,否则这将起作用,这可能就是您所需要的。例如,如果您还有文本字段,并且希望在这些文本字段上按下回车键时执行登录操作,则只需为文本字段设置onAction处理程序:

<TextField fx:id="emailId" onAction="#login" />