如何在Java FX中仅关闭一个阶段(不退出所有应用程序)?

时间:2019-01-04 23:10:30

标签: javafx

我知道System.exit(0)和Platform.exit()以及stage.close(),但是所有这些都杀死了所有阶段。有什么想法可以杀死一个阶段吗?我的意思是杀死/关闭,而不是躲藏。

编辑: 我将确切说明我的问题是什么。 我上了这样的课:

public class Controller extends Application implements Serializable {

private LineChart<String,Number> lineChart;

public void btn(javafx.event.ActionEvent actionEvent) throws IOException {
    Stage stage = new Stage();
    Scene scene = new Scene(lineChart,400,400);
    stage.setScene(scene);
    stage.show();
    stage.setOnCloseRequest( e-> stage.hide());
    }
}

我在Controllers构造函数中创建了一个新的LineChart。问题是,当我在同一控制器上第二次(或更多次)调用btn()方法时,出现错误“ IllegalArgumentException:LineChart已设置为另一个场景的根目录”。当我以setOnCloseRequest调用Platform.exit()/ stage.close()/ stage.hide()/ System.exit(0)时,我的主窗口(带有菜单等)也在关闭,我所期待的只是关闭带有LineChart的窗口。

1 个答案:

答案 0 :(得分:0)

这是一个可运行的示例程序,向您展示如何关闭1个窗口或所有窗口

import

了解调用type="module"不会关闭所有窗口的方法,而其他两个方法则是仅关闭一个窗口的方法。