JavaFX网格窗格和内容大小

时间:2013-08-12 13:12:25

标签: java layout javafx-2

我一直试图让GridPane的内容表现出与自动尺寸相关的但我对JavaFX来说相对较新,所以我没有取得任何成功。基本上,每列对我来说都是一个完全随机的大小,我不知道如何使它们正确生长。如果我尝试设置列约束,内容有时会完全消失,有时它的大小完全是任意的。尝试将首选宽度绑定到其他任何位置也无法正常工作。不过,我确定错误是我的错误。这是我的代码(contentHolder是一个将vGrow设置为ALWAYS的ScrollPane):

    int row = 1;
    GridPane gridPane = new GridPane();
    for (List<IndexObject> stepList : search) {
        Label itemLabel = new Label();
        itemLabel.setText(String.valueOf(row));

        TreeItem<String> treeRoot = new TreeItem<>(stepList.get(0).getPath());
        for (int line = 1; line < stepList.size(); line++) {
            treeRoot.getChildren().add(new TreeItem<>(stepList.get(line).getPath()));
        }
        TreeView treeView = new TreeView();
        treeView.setShowRoot(true);
        treeView.setRoot(treeRoot);
        treeRoot.setExpanded(true);

        IndexObject lastObject = stepList.get(stepList.size() - 1);

        TextArea output = new TextArea();
        output.setText(lastObject.prettyPrint());

        gridPane.addRow(row, itemLabel, treeView, output);
        row++;
    }
    contentHolder.setContent(gridPane);

到clientHolder的所有内容都在fxml中定义。这是它的样子。没有任何条目接近自动分配的高度,但所有宽度都太小。我错过了什么?

format failure

1 个答案:

答案 0 :(得分:1)

答案是滚动窗格在您创建之前不会自动调整大小:

<ScrollPane VBox.vgrow="ALWAYS" fitToWidth="true">

此时一切都按预期工作。