java JavaFX在主阶段关闭时关闭任何其他阶段,但允许它们隐藏在主阶段后面
假设我创建的第二个窗口有以下代码:
stage.initModality(Modality.NONE);
stage.initOwner(coreController.getStage());
如果我这样做,它会在我的主窗口关闭时关闭
如果我注释掉stage.initOwner(coreController.getStage());
,那么它将能够隐藏在主面板后面,但不会关闭
当我杀死主舞台时,有没有办法让它关闭没有编写代码来跟踪创建的每个新窗口?到目前为止,我唯一的选择似乎是在列表中注册每个新窗口,当主窗口触发“关闭事件”时,我也会为所有其他窗口触发该事件。有没有办法不用我进去把所有的东西都连接起来
编辑:我使用了模态。没有,因此窗口不会阻止任何事件,但我不知道这是否与问题有关
编辑2:我希望在退出主窗口时关闭所有窗口(如果我可以拦截关闭事件并进行清理,这将是一个额外的好处)
# 1 楼答案
如果我正确理解了这个问题,你可以在主舞台关闭时,为你需要关闭的每个舞台打电话给initOwner(mainStage)罢工>只是添加了对Oracle文档的引用,这就解释了为什么initOwner(mainStage)不适合这种情况:
发件人:https://docs.oracle.com/javase/8/javafx/api/javafx/stage/Stage.html#initOwner-javafx.stage.Window-