所以我有两个阶段,一个是主舞台,另一个是弹出屏幕。当弹出屏幕出现时,您可以通过按左上角的“x”(或右上角,取决于您的操作系统)来关闭它。有没有办法在关闭弹出屏幕时关闭主舞台?
答案 0 :(得分:2)
Stage
和Popup
从Window
继承onHidden
property。这是一个在隐藏窗口后立即调用的处理程序(通过任何机制)。您可以在处理程序中调用Platform.exit()
以退出应用程序:
popup.setOnHidden(event -> Platform.exit());
请注意,Platform.exit()
通常首选System.exit(0)
:调用System.exit(...)
将不允许调用Application
的{{1}}方法,因此,您可以绕过应用程序正在执行的任何资源清理。
答案 1 :(得分:1)
有一个名为setOnCloseRequest
的活动。如果您打开Alert
弹出窗口。
Alert popup = new Alert(AlertType.INFORMATION);
然后你的解决方案是:
alert.setOnCloseRequest(new EventHandler<DialogEvent>()
{
@Override
public void handle(DialogEvent t)
{
System.exit(0);
}
});
否则,如果您想要与其所有者关闭另一个窗口,请使用stage
并将DialogEvent
替换为WindowEvent
。