从任务栏关闭 javafx 应用程序时会触发什么事件?如何处理它?
what event is fired when you close a javafx application from the task bar and how do you handle it?
我看到一些关于此的帖子将答案标记为正确,尽管它们似乎不起作用,这可能出于多种原因。
我想要处理用户通过右键单击应用程序从任务栏关闭应用程序的事件,我想处理这个以确保干净关闭并确保所有用户数据已保存。
我已尝试添加关闭挂钩(如下例),但在从任务栏关闭应用程序时并未触发该挂钩
Runtime.getRuntime().addShutdownHook(new Thread(()->{
System.out.println("closing . . .");
}));
我尝试的另一种方法是为我的阶段添加一个 setOnCloseRequest 侦听器,如下所示,但是当从任务栏关闭应用程序时也没有触发 WINDOW_CLOSE_REQUEST 事件。
stage.setOnCloseRequest(event2 -> {
System.out.println("closing . . .");
Platform.exit();
System.exit(0);
});
根据@James_D的回复,我意识到我在错误的地方添加了关闭钩子,以帮助那些对 java 和 JavaFX 比较陌生的人添加关闭钩子您必须在调用 main 方法中的 launch(args) 之前执行此操作。
我看到一些关于此的帖子将答案标记为正确,尽管它们似乎不起作用,这可能出于多种原因。
我想要处理用户通过右键单击应用程序从任务栏关闭应用程序的事件,我想处理这个以确保干净关闭并确保所有用户数据已保存。
我已尝试添加关闭挂钩(如下例),但在从任务栏关闭应用程序时并未触发该挂钩
Runtime.getRuntime().addShutdownHook(new Thread(()->{
System.out.println("closing . . .");
}));
我尝试的另一种方法是为我的阶段添加一个 setOnCloseRequest 侦听器,如下所示,但是当从任务栏关闭应用程序时也没有触发 WINDOW_CLOSE_REQUEST 事件。
stage.setOnCloseRequest(event2 -> {
System.out.println("closing . . .");
Platform.exit();
System.exit(0);
});
根据@James_D的回复,我意识到我在错误的地方添加了关闭钩子,以帮助那些对 java 和 JavaFX 比较陌生的人添加关闭钩子您必须在调用 main 方法中的 launch(args) 之前执行此操作。