我寫了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. Log4j的默認關閉操作日誌
- 2. JavaFX 2.0:關閉一個階段(窗口)
- 3. 如何等待用戶在JavaFX中的操作(在同一階段)
- 4. 如何覆蓋默認窗口關閉操作?
- 5. 如何在Javafx關閉時執行某些操作?
- 6. 如何關閉Javafx?
- 7. Flyway在默認階段不執行
- 8. JavaFX + afterburnerfx + trayicon - 關閉/隱藏階段後丟失注入
- 9. javaFX:在任務中打開第二個階段,等待它關閉,然後繼續第一階段。
- 10. Maven目標的默認階段?
- 11. 是否有可能在javafx maven插件的相同階段(包階段)中維護操作序列
- 12. 如何在Ajax中防止JQuery中的默認操作調用結果條件
- 13. 如何使jquery菜單默認關閉
- 14. 如何在JavaFX應用程序中獲得主要階段?
- 15. 如何在JFrame中編寫默認關閉按鈕的代碼?
- 16. 默認JavaFX-CSS
- 17. JavaFX2:從本身內部關閉一個階段(子階段)
- 18. JQuery Accordion默認關閉
- 19. 關閉默認編碼
- 20. 如何關閉在jqgrid中設置默認排序指針?
- 21. JavaFX多個初級階段
- 22. 我如何取消默認操作,如果用戶在我的應用程序中將我的操作設置爲默認操作?
- 23. 如何將maven插件默認添加到階段?
- 24. 在NSSearchfield中更改默認insertTab:操作
- 25. 如何在一段時間後關閉舞臺JavaFX
- 26. 如何在Scala中實現具有默認操作的地圖
- 27. 如何使「編輯」操作成爲默認操作?
- 28. Android WebView中輸入字段的默認操作
- 29. SceneBuilder中的JavaFX調用默認方法(FXML)
- 30. 阻止使用IE8的默認操作
你能解釋更多的東西,這是應該做的?調用'stage.close()'將**不會調用'onCloseRequest()'處理程序。目前還不清楚這是你打算的。如果你想要一個事件處理程序,無論窗口如何關閉,你都應該使用'stage.setOnHidden()'。 –