显示新场景后消除上一场景

时间:2015-12-02 08:20:48

标签: java javafx

我刚刚开始学习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;
        }

    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用Scene中的任意Node来获取对该场景的引用。您可以使用Scene获取包含它的Window。你可以关闭那个窗口。

假设加载项实际注入了Node个字段,您可以使用以下代码关闭Stage

btnLogin.getScene().getWindow().hide();