目前我在JavaFX 2上开发GUI,并且我找到了很好的oracle示例:FXML-LoginDemo。在这个示例2场景(基于FXML)中,第1个是AuthoriseForm,第2个是UserData更改,Main类有下一个方法:
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;
答案 0 :(得分: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)应为handled by a method defined in the controller。