我刚刚开始学习JAVAFX,现在遇到了一个问题。我有一个登录屏幕,单击登录后,出现一个对话框,问题是我不知道如何在对话框显示后消除登录屏幕。请帮我。这是我的代码
Main.java(包含登录屏幕)
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("../view/LoginScreen.fxml"));
primaryStage.setTitle("Weltes Mart O2 Tank Module");
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
LoginController.java(显示对话框)
public class LoginController {
@FXML private Text loginStatusMessage;
@FXML private Button btnLogin;
@FXML public void handleLoginButton(ActionEvent event){
System.out.println("BUTTON PRESSED");
try {
Parent root = FXMLLoader.load(getClass().getResource("../view/LoginSuccessDialog.fxml"));
Stage primaryStage = new Stage();
primaryStage.setScene(new Scene(root));
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
return;
}
}
}
最佳答案
您可以使用任何 Node
在 Scene
中获取对该场景的引用。您可以使用Scene
来获取包含它的Window
。您可以关闭该窗口。
假设 Node
字段实际上是由加载程序注入(inject)的,您可以使用以下代码关闭 Stage
:
btnLogin.getScene().getWindow().hide();
关于java - 显示新场景后消除先前的场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34037850/