VBox には多数のツリービューがあります。表示されるノードの数に基づいてツリービューの高さを取得したい。ツリービューのルートノードを折りたたむと、そのツリービューの高さも変わるはずです。
この画像の場合、Item0 には 7 つのサブアイテムが表示され、多くの空白があり、Item1 が開始されます。Item1 は現在折りたたまれているため、Item2 は Item1 のすぐ下で開始する必要があります。
これを行う正しい方法を教えてください。
これを試して
@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();
}