在退出应用程序之前执行javafx操作

时间:2014-08-05 18:04:42

标签: javafx

当我在某些操作运行时退出应用程序时,我想打开一个带进度条的窗口。

我试图将我的代码放在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();
});

但同样的,它没有用。

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:1)

onCloseRequest事件处理程序中使用close request event

event.consume();

这将阻止窗口关闭,如果窗口是应用程序中的最后一个窗口,则会触发应用程序关闭。

或者,您可以设置Platform.setImplicitExit(false),在这种情况下"即使在最后一个窗口关闭后应用程序仍将继续正常运行,直到应用程序调用{​​{3}}"。

JavaFX应用程序生命周期在exit()类的javadoc中定义,您可能应阅读该类以获取更多背景信息。