如何在按钮上显示 "stage2" 后隐藏 "stage1" 单击 [JavaFX]

How to hide "stage1" after you show "stage2" on a button click [JavaFX]

我有 2 个 .fxml 文件(stage1.fxml 和 stage2.fxml)及其控制器 class。

我在 stage1.fxml 中有一个按钮,单击它会打开 stage2.fxml,上面有这段代码:

public void btnStage2(ActionEvent event) {
        try {
            Parent stage2 = FXMLLoader.load(getClass().getResource("/application/stage2.fxml"));
            Stage stage = new Stage();
            stage.setScene(new Scene(stage2));
            stage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }

这打开 stage2 就好了,但是 stage1 仍然打开,我可以直接进入它并继续使用那个阶段的按钮,我不想要那个。

当我在打开 stage2.fxml 之前按下 btnStage2 时,如何 .setVisible(false) stage1

我发现了其他关于 "hiding" 舞台的帖子,而不是在我按下关闭按钮时关闭它,但这不符合我的需要。感谢您的帮助!

经过数小时的反复试验,我想我终于理解了 stage.close() 的工作原理。

我的问题的解决方案是在按钮的方法中添加这两行代码:

Stage stage1= (Stage) btnStage2.getScene().getWindow();
stage1.close();

以前,我认为我不能在一个函数中调用多个Stage。原来我错了