0
我想編寫一個簡單的應用程序,當你點擊關閉 - 新窗口(舞臺)向上推,問你是否真的需要它。我知道它是如何編程實現的,但不知道如何使用fxml
和controllers
來實現。在JavaFx中的階段之間進行通信(使用* .fxml)
如果主要應用階段和確認階段將使用分開的controllers
和每個controller
將映射爲一個fxml
文件只能如何返回從確認到主階段的結果值?
我想編寫一個簡單的應用程序,當你點擊關閉 - 新窗口(舞臺)向上推,問你是否真的需要它。我知道它是如何編程實現的,但不知道如何使用fxml
和controllers
來實現。在JavaFx中的階段之間進行通信(使用* .fxml)
如果主要應用階段和確認階段將使用分開的controllers
和每個controller
將映射爲一個fxml
文件只能如何返回從確認到主階段的結果值?
我想你可能需要簡單的Dialog或Alert。如果您不喜歡默認的Java對話框的外觀,您可以擴展DialogPane(或對話框本身),將它設計爲FXML和setDialogPane
到您的對話框。
這裏是如何創建,顯示和獲得從簡單的警報導致沒有任何花哨的樣子:
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.showAndWait().ifPresent(response -> {
if (response == ButtonType.OK) {
System.out.println("User clicked OK");
}
});
要關閉主舞臺的一部分。你可以攔截並處理關閉請求。
stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
System.out.println("I will not close");
event.consume();
}
});
通過使用該事件,您可以阻止如果你想關閉階段。所以如果你想從用戶那裏得到確認,只需將Alert放入onCloseRequest處理中,並且如果他決定使用該事件(點擊取消)就可以使用該事件。