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

2022-08-31 11:34:49

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

但是,在JavaFX中,我找不到等效的。我打开了多个窗口,如果窗口关闭,我想关闭整个应用程序。在JavaFX中做到这一点的方法是什么?

编辑:

我知道我可以覆盖以在窗口关闭时执行一些操作。问题是应该执行什么操作来终止整个应用程序?setOnCloseRequest()

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

类中定义的方法不执行任何操作。stop()Application


答案 1

当最后一个关闭时,应用程序会自动停止。此时,您的类的方法被调用,因此您不需要等效于Stagestop()ApplicationsetDefaultCloseOperation()

如果要在此之前停止应用程序,可以调用 ,例如在调用中。Platform.exit()onCloseRequest

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


答案 2

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

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

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

推荐