如何在按钮上显示 "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
。原来我错了
我有 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
。原来我错了