【问题标题】:JavaFX Tree View Height According to ContentJavaFX树视图高度根据内容
【发布时间】:2013-06-30 23:56:11
【问题描述】:

我在 VBox 中有许多树视图。 我希望树视图根据可见节点的数量获取高度。 假设我折叠树视图的根节点,那么树视图的高度也应该改变。

在这张图片的情况下,Item0 显示 7 个子项,然后有很多空白,然后 Item1 开始,Item1 现在折叠,所以 Item2 应该在 Item1 的下方开始。

请告诉我这样做的正确方法是什么。

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的问题。
  • 有一个根节点为空的树节点不可见,并且有一个树视图而不是多个树视图(如果可能的话

标签: treeview javafx


【解决方案1】:

试试这个

@Override
public void start(Stage primaryStage) {

    VBox treeContainer = new VBox();

    TreeItem<String> hiddenRootItem = new TreeItem<String>();
    TreeView<String> tree = new TreeView<String>(hiddenRootItem);
    tree.setShowRoot(false);

    treeContainer.getChildren().add(tree);

    for (int j = 0; j < 3; ++j) {
        TreeItem<String> rootItem = new TreeItem<String>("Item " + j);
        rootItem.setExpanded(true);
        String[] names = {"SubItem1", "SubItem2", "SubItem3", "SubItem4", "SubItem5", "SubItem6", "SubItem7",};
        for (int i = 0; i < names.length; i++) {
            TreeItem<String> item = new TreeItem<String>(names[i]);
            rootItem.getChildren().add(item);
        }
        hiddenRootItem.getChildren().add(rootItem);
    }

    StackPane root = new StackPane();
    root.getChildren().add(treeContainer);
    Scene scene = new Scene(root, 300, 250);
    primaryStage.setScene(scene);
    primaryStage.show();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多