当我在某些操作运行时退出应用程序时,我想打开一个带进度条的窗口。
我试图将我的代码放在Application类的stop方法中,但此时javafx已经关闭了。
我在第一个窗口做了同样的事情:
primaryStage.setOnCloseRequest(event -> {
Stage loading = new Stage();
loading.initModality(Modality.WINDOW_MODAL);
loading.initOwner(primaryStage);
loading.setScene(new Scene(new Group(JfxUtils.loadFxml(new FXMLLoader(), FxmlFileConstantes.LOADING))));
loading.show();
});
但同样的,它没有用。
我该怎么做?
感谢。
答案 0 :(得分:1)
在onCloseRequest
事件处理程序中使用close request event。
event.consume();
这将阻止窗口关闭,如果窗口是应用程序中的最后一个窗口,则会触发应用程序关闭。
或者,您可以设置Platform.setImplicitExit(false)
,在这种情况下"即使在最后一个窗口关闭后应用程序仍将继续正常运行,直到应用程序调用{{3}}"。
JavaFX应用程序生命周期在exit()
类的javadoc中定义,您可能应阅读该类以获取更多背景信息。