如何在窗口关闭时关闭JavaFX应用程序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

在Swing中,您可以简单地使用setDefaultCloseOperation()关闭窗口时关闭整个应用程序。

但是在JavaFX中,我无法找到相应的对象。我打开了多个窗口,如果窗口关闭,我想关闭整个应用程序。在JavaFX中做什么的方法是什么?

编辑:

我明白,我可以重写setOnCloseRequest()在窗口关闭执行一些操作。问题是应该执行什么操作来终止整个应用程序?

stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
    @Override
    public void handle(WindowEvent event) {
        stop();
    }
});

stop()Application类中定义的方法什么都不做。

提问于
用户回答回答于

应用程序在最后一次Stage关闭时自动停止。此时stop(),你的Application课程的方法被调用,所以你不需要等价的方法setDefaultCloseOperation()

如果您想在此之前停止该应用程序,则可以打电话给您Platform.exit(),例如在您的onCloseRequest电话中。

您可以在javadoc页面上获得所有这些信息Applicationhttp : //docs.oracle.com/javafx/2/api/javafx/application/Application.html

用户回答回答于

一些提供的答案对我来说不起作用(javaw.exe在关闭窗口后仍然运行),或者eclipse在应用程序关闭后显示异常。

另一方面,这完美地工作:

primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
    @Override
    public void handle(WindowEvent t) {
        Platform.exit();
        System.exit(0);
    }
});

扫码关注云+社区