Javafx TitledPane 调整大小 Header

Javafx TitledPane resize Header

有没有办法将 TitledPane 的 header 调整为 GridPane 的大小?

这是 TitledPane 的代码

        // --- GridPane container
    final Label label = new Label("N/A");
    TitledPane gridTitlePane = new TitledPane();
    GridPane grid = new GridPane();

    gridTitlePane.setStyle("-fx-background-color: #336699;");
    gridTitlePane.setPrefSize(parentGrid.getPrefWidth(),parentGrid.getPrefHeight());
    gridTitlePane.setText("Statistik");
    gridTitlePane.setExpanded(false);
    //grid.setVgap(4);
    grid.setPadding(new Insets(5, 5, 5, 5));
    grid.add(new Label("To: "), 0, 0);
    grid.add(new TextField(), 1, 0);
    grid.add(new Label("Cc: "), 0, 1);
    grid.add(new TextField(), 1, 1);
    grid.add(new Label("Subject: "), 0, 2);
    grid.add(new TextField(), 1, 2);
    grid.add(new Label("Attachment: "), 0, 3);
    grid.add(label,1, 3);
                                                    gridTitlePane.setStyle("");
    gridTitlePane.setContent(grid);

    HBox hbox = new HBox();
    //HBox.setHgrow(gridTitlePane,Priority.ALWAYS);
    //HBox.setHgrow(grid,Priority.ALWAYS);
    hbox.getChildren().setAll(gridTitlePane);

您可以在 css 文件中为 TitlePane header 设置固定大小:

.titled-pane > .title {
    -fx-pref-height: 36.0;
}

或者您可以使用 Node

lookup(String) 函数设置高度
Platform.runLater(() -> {
            Pane title = (Pane) titlePane.lookup(".title");
             title.setPrefHeight(value);
             //or
             title.prefHeightProperty().bind(gridPane.heightProperty());
            });