运行 单击并按回车键时功能相同

Run same function when clicking and pressing enter key

我有点击按钮时 运行 的这个功能,但我想 运行 按 enter 时的相同功能。我应该怎么做?

@FXML
public void login(ActionEvent event) throws IOException {
    if(txtUName.getText().equals("jesse") && txtPass.getText().equals("essej")){
        Parent home;
        try {
            home = FXMLLoader.load(getClass().getResource("Home.fxml"));
            Scene homeScene = new Scene(home);

            Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();

            window.setScene(homeScene);

            window.show();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }else {
        lblError.setVisible(true);
    }
} 

您需要一个按键事件,然后应检查此事件是否已推送 "enter"。

Detecting when user presses enter in Java

你的意思是你有另一个 @FXML 函数想要做同样的事情?只需将您的逻辑放在一个单独的函数中,然后从您的事件函数中调用它。

@FXML
public void buttonPressed(MouseEvent event) {
    doSomething(event);
}

@FXML
public void keyPressed(KeyEvent event) {
    doSomething(event);
}

private void doSomething(InputEvent event) {
    // your code here
}

此KeyEvent 和MouseEvent 继承自InputEvent。您仍然可以调用 .getSource(),因为它是继承的,并且在您显示的代码中,您对事件没有做任何更具体的事情。

我找到了适合我的解决方案。

您可以在 Scene Builder 中将该按钮设置为默认按钮,这样当您按下回车键时它也会激活该方法。