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

标签 java javafx javafx-2 javafx-8

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

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

编辑:

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

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

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

最佳答案

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

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

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

关于java - 如何在窗口关闭时关闭 JavaFX 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12153622/

相关文章:

java - 从 hashmap 中选择第一个键满足 if 语句

java - 如何在 Java FX 中的 initialize() 方法之前让 Controller 访问主应用程序?

java - JDK是否缺少某些源文件?

css - Javafx css 在文本上实现这种效果

css - TextArea 不处理 MouseEvent.MOUSE_PRESSED

java - 如何使用 JavaFX 2 绘制时钟?

java - java容器类

java - 多线程方面比较java和scala

java - spring bean配置文件放在什么位置

java - 在 Java fxml 应用程序中为动态创建的 Text 对象应用鼠标单击监听器