0

目前我正在 JavaFX 2 上开发 GUI,并且我找到了很好的 oracle 示例:FXML-LoginDemo。在这个示例中,有 2 个场景(基于 FXML),第一个是 AuthoriseForm,第二个是 UserData 变化,主类有下一个方法:

public boolean userLogging(String userId, String password){
    if (Authenticator.validate(userId, password)) {
        loggedUser = User.of(userId);
        gotoProfile();
        return true;
    } else {
        return false;
    }
}

gotoProfile();- 改变场景..

LoginController 类有下一个方法:

 public void processLogin(ActionEvent event) {
        if (application == null){
            // We are running in isolated FXML, possibly in Scene Builder.
            // NO-OP.
            errorMessage.setText("Hello " + userId.getText());
        } else {
            if (!application.userLogging(userId.getText(), password.getText())){
                errorMessage.setText("Username/Password is incorrect");
            }
        }
    }

processLogin()代码中没有调用..所以问题是:processLogin()按下后如何调用

@FXML
Button login;
4

1 回答 1

0

这是Login.fxml文件的链接。

该文件包含这一行:

<Button id="button1" fx:id="login" defaultButton="true" onAction="#processLogin" prefHeight="70.0" prefWidth="400.0" text="Login" AnchorPane.bottomAnchor="66.0" AnchorPane.leftAnchor="40.0" AnchorPane.rightAnchor="40.0" />

该行设置此属性:

onAction="#processLogin"

该属性表示按钮单击 (ActionEvent) 应由控制器中定义的方法处理

于 2013-10-04T10:20:46.903 回答