我写了primaryStage的defaultCloseOperation函数,但我也有一个退出按钮,我想运行该defaultCloseOperation。 我试图调用阶段的close()和hide()方法,但它立即退出而不调用我的defaultCloseOperation函数,但我需要调用它,因为我需要从服务器端释放所有资源,当我关闭客户。如何在javafx中调用阶段的默认关闭操作?
0
A
回答
2
请勿在Stage
的关闭操作中执行此操作。
这就是Application.stop
方法应该使用的。
@Override
public void stop() throws Exception {
// TODO: release resources here
}
如果有用于然而,多个窗口的一个资源,你应该使用一个事件处理程序onHidden
事件 - 无需扩展Stage
:
stage.setOnHidden(event -> {
// TODO: release resources here
});
1
你可以看到它:
stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override public void handle(WindowEvent t) {
System.out.println("CLOSING");
}
});
这里:
new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent actionEvent) {
// take some action
...
// close the dialog.
Node source = (Node) actionEvent.getSource();
Stage stage = (Stage) source.getScene().getWindow();
stage.close();
}
}
更多的解释,你可以阅读here
相关问题
- 1. 如何关闭初级阶段关闭时的所有阶段?
- 2. Log4j的默认关闭操作日志
- 3. JavaFX 2.0:关闭一个阶段(窗口)
- 4. 如何等待用户在JavaFX中的操作(在同一阶段)
- 5. 如何关闭和图标化JavaFx阶段
- 6. 如何覆盖默认窗口关闭操作?
- 7. 如何锁定子阶段直到新的子阶段关闭
- 8. 如何在关闭阶段后清除Javafx Webview内存使用情况
- 9. 每当报告阶段关闭时,主阶段即将关闭
- 10. 如何在Javafx关闭时执行某些操作?
- 11. 在PApplet上设置默认关闭操作(处理)
- 12. 如何关闭Javafx?
- 13. Flyway在默认阶段不执行
- 14. JavaFX + afterburnerfx + trayicon - 关闭/隐藏阶段后丢失注入
- 15. 是否可以在javafx 2中关闭其他类方法的阶段?
- 16. 在javafx的另一个阶段中的阶段
- 17. 制作的jQuery accordians默认为关闭
- 18. javaFX:在任务中打开第二个阶段,等待它关闭,然后继续第一阶段。
- 19. Maven目标的默认阶段?
- 20. 禁用后台阶段javafx
- 21. 是否有可能在javafx maven插件的相同阶段(包阶段)中维护操作序列
- 22. 如何在Ajax中防止JQuery中的默认操作调用结果条件
- 23. 如何显示slideToggle默认关闭?
- 24. 如何使jquery菜单默认关闭
- 25. 如何关闭默认画廊程序?
- 26. Sitecore的MVC默认操作调试
- 27. 如何调整Javafx未修饰阶段的大小?
- 28. 如何在JavaFX应用程序中获得主要阶段?
- 29. 如何完成javafx阶段创建
- 30. 如何在JFrame中编写默认关闭按钮的代码?
你能解释更多的东西,这是应该做的?调用'stage.close()'将**不会调用'onCloseRequest()'处理程序。目前还不清楚这是你打算的。如果你想要一个事件处理程序,无论窗口如何关闭,你都应该使用'stage.setOnHidden()'。 –