JavaFX 的 DialogPane
是一個用於建立對話方塊的控制元件,它是 Dialog
類內容部分的根節點。DialogPane
提供了一個靈活的方式來自定義對話方塊的內容和行為。
以下是 DialogPane
的一些基本用法:
-
建構函式:
DialogPane
可以透過多種建構函式建立,可以指定標題、頭部、內容和擴充套件按鈕。 -
標題和頭部:使用
setTitle
和setHeaderText
方法來設定對話方塊的標題和頭部文字。 -
內容設定:使用
setContent
方法來設定對話方塊的主要內容。 -
按鈕:使用
getButtonTypes
和buttonTypesProperty
來新增或設定對話方塊的按鈕型別。 -
結果:使用
Dialog
類的showAndWait
方法來顯示對話方塊,並等待使用者操作。使用者操作的結果可以透過Dialog
類的getResult
方法獲取。 -
事件處理:可以為按鈕新增事件處理程式來響應使用者的點選事件。
下面是一個 DialogPane
的使用案例,演示瞭如何使用 DialogPane
來建立一個簡單的確認對話方塊:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.DialogPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class DialogPaneDemo extends Application {
@Override
public void start(Stage primaryStage) {
// 建立 DialogPane 例項
DialogPane dialogPane = new DialogPane();
// 設定標題和頭部文字
dialogPane.setHeaderText("Confirm Action");
dialogPane.setContentText("Are you sure you want to proceed?");
// 建立確認和取消按鈕
ButtonType confirmButtonType = new ButtonType("Confirm", ButtonBar.ButtonData.OK_DONE);
ButtonType cancelButtonType = new ButtonType("Cancel", ButtonBar.ButtonData.CANCEL_CLOSE);
dialogPane.getButtonTypes().addAll(confirmButtonType, cancelButtonType);
// 設定對話方塊的按鈕
dialogPane.lookupButton(confirmButtonType).addEventFilter(ActionEvent.ACTION, event -> {
System.out.println("Confirmed");
});
dialogPane.lookupButton(cancelButtonType).addEventFilter(ActionEvent.ACTION, event -> {
System.out.println("Cancelled");
});
// 建立一個垂直佈局的皮膚作為對話方塊的內容
VBox vbox = new VBox(10); // 間距為10
dialogPane.setContent(vbox);
// 建立一個 Dialog 例項並設定 DialogPane
Scene scene = new Scene(dialogPane, 300, 200);
Dialog<ButtonType> dialog = new Dialog<>();
dialog.getDialogPane().setContent(dialogPane);
dialog.initOwner(primaryStage);
dialog.initModality(Modality.APPLICATION_MODAL);
// 顯示對話方塊
dialog.showAndWait().ifPresent(result -> {
if (result == confirmButtonType) {
System.out.println("User clicked confirm.");
} else {
System.out.println("User clicked cancel.");
}
});
}
public static void main(String[] args) {
launch(args);
}
}
在這個例子中,我們建立了一個 DialogPane
並設定了標題和頭部文字。然後,我們新增了兩個按鈕型別(確認和取消)到對話方塊,併為這些按鈕設定了事件處理程式。我們還建立了一個 VBox
作為對話方塊的內容,並將其設定到 DialogPane
中。
接著,我們建立了一個 Dialog
例項,並將 DialogPane
設定為對話方塊的內容。我們設定了對話方塊的所有者和模態性,然後呼叫 showAndWait
方法來顯示對話方塊,並等待使用者操作。
執行這個程式,你會看到一個確認對話方塊,使用者可以選擇確認或取消操作。根據使用者的選擇,控制檯將列印相應的訊息。