2013-06-29 2 views
0

У меня есть количество древовидных изображений в VBox. Я хочу, чтобы древовидное представление принимало высоту, исходя из количества видимых узлов. Скажите, если я разрушу корневой узел дерева, тогда высота этого дерева также должна измениться. Image of three tree views in a vboxJavaFX Высота дерева Высота по содержанию

В случае с этим изображением Item0 отображает 7 подэлементов, а затем появляется много пробелов, а затем начинается Item1, Item1 теперь рушится, поэтому Item2 должен начинаться сразу под Item1.

Пожалуйста, скажите мне, как правильно это сделать.

+0

Вы нашли какое-либо решение? У меня тоже такая же проблема. –

+0

Имейте узел дерева с корневым узлом как пустой, не видимый и имеющий одно представление дерева вместо нескольких видов дерева (если возможно –

ответ

0

Попробуйте

@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(); 
} 
Смежные вопросы