JavaFX布局-DialogPane
- 一个特殊的布局容器,常用于弹出框,与
Dialog
配合一起使用 - 包含标题区,内容区域,扩展区域
常用属性
标题区域
标题区域可以使用纯文本,也可以自定义
headerText
纯文本
dialogPane.setHeaderText("headerText信息");
header
自定义显示
dialogPane.setHeader(new Button("header按钮"));
内容区域
contentText
纯文本
dialogPane.setContentText("contentText信息");
content
自定义显示
dialogPane.setContent(new TextArea() {{
setText("contentText信息");
}});
graphic
设置弹出框的小图标,否则会采用AlertType默认图标
dialogPane.setGraphic(new ImageView("icon.png"));
按钮设置
dialogPane.getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
expandableContent
展开区域
TextArea textArea = new TextArea("展开显示详细内容");
textArea.setEditable(false);
textArea.setWrapText(true);
textArea.setMaxWidth(Double.MAX_VALUE);
textArea.setMaxHeight(Double.MAX_VALUE);
dialogPane.setExpandableContent(textArea);
dialogPane.setExpanded(true);
实现方式
Java实现
public static Parent demo1(Window owner) {
FlowPane flowPane = new FlowPane();
flowPane.setHgap(10);
flowPane.setVgap(10);
flowPane.setOrientation(Orientation.VERTICAL);
Button button1 = new Button("demo1");
button1.setOnMouseClicked((event) -> {
if (MouseButton.PRIMARY.equals(event.getButton())) {
Dialog dialog = new Dialog();
dialog.initOwner(owner);
dialog.setDialogPane(DialogPaneUtil.createDialogPane());
dialog.show();
}
});
flowPane.getChildren().add(button1);
return flowPane;
}
public static DialogPane createDialogPane() {
DialogPane dialogPane = new DialogPane();
dialogPane.setHeaderText("headerText信息");
dialogPane.setGraphic(new ImageView("icon.png"));
//dialogPane.setHeader(new Button("header按钮"));
dialogPane.setContentText("contentText信息");
// dialogPane.setContent(new TextArea() {{
// setText("contentText信息");
// }});
// 设置按钮
dialogPane.getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
TextArea textArea = new TextArea("展开显示详细内容");
textArea.setEditable(true);
textArea.setWrapText(true);
textArea.setMaxWidth(Double.MAX_VALUE);
textArea.setMaxHeight(Double.MAX_VALUE);
dialogPane.setExpandableContent(textArea);
dialogPane.setExpanded(false);
return dialogPane;
}