我在LogUIController中使用FXMLLOADER来加载一个名为SignInUI.fxml的fxml文件。代码如下:
我在SignInUIController中编写了一个名为setStage的方法,它可以给实例变量stage赋值。
我试图在LogUIController中构建一个SignInUIController实例,并调用setStage方法。最后,将SignInUIController中的cancel方法与一个按钮绑定,并使用实例变量stage关闭舞台。
但每次都会出现一个错误:
Stage signIn = new Stage();
FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("SignInUI.fxml"));
SignInUIController signInUIController = new SignInUIController();
signInUIController.setStage(signIn);
Scene sceneSignIn = new Scene(fxmlLoader.load());
signIn.setTitle("Sign In");
Image icon = new Image("calculator.jpg");
signIn.getIcons().add(icon);
signIn.setScene(sceneSignIn);
signIn.show();
我在SignInUIController中编写了一个名为setStage的方法,它可以给实例变量stage赋值。
public Stage stage;
public void setStage(Stage stage) {
this.stage = stage;
}
我试图在LogUIController中构建一个SignInUIController实例,并调用setStage方法。最后,将SignInUIController中的cancel方法与一个按钮绑定,并使用实例变量stage关闭舞台。
@FXML
private void cancel() throws IOException {
stage.close();
}
但每次都会出现一个错误:
Cannot invoke "javafx.stage.Stage.close()" because "this.stage" is null
。我不知道为什么,也不知道如何解决这个问题?
cancel
是一个Button
的onAction
方法,它应该是private void cancel(ActionEvent actionEvent)
。其次,我猜你可能在寻找以下内容。https://dev59.com/tl8f5IYBdhLWcg3wFvan#41838183 - SedJ601