Javafx 为TreeView设置两个根节点

Javafx 为TreeView设置两个根节点,javafx,javafx-2,javafx-8,Javafx,Javafx 2,Javafx 8,有没有办法为一个TreeView设置两个根节点 我发现了很多简单树状视图的例子,但没有一个对我有用的例子。否:一棵树只有一个根节点 要获得想要的效果,请创建一个虚拟根节点,并将两个节点添加到其中。使用虚拟根节点创建TreeView并调用tree.setShowRoot(false),这样虚拟节点就不会出现 final TreeItem<String> root1 = new TreeItem<>("root 1"); final TreeItem<String>

有没有办法为一个TreeView设置两个根节点


我发现了很多简单树状视图的例子,但没有一个对我有用的例子。

否:一棵树只有一个根节点

要获得想要的效果,请创建一个虚拟根节点,并将两个节点添加到其中。使用虚拟根节点创建TreeView并调用
tree.setShowRoot(false)
,这样虚拟节点就不会出现

final TreeItem<String> root1 = new TreeItem<>("root 1");
final TreeItem<String> root2 = new TreeItem<>("root 2");
final TreeView<String> tree = createTreeView(root1, root2);

// ...

private TreeView<String> createTreeView(TreeItem<String> root1, TreeItem<String> root2) {
    TreeItem<String> dummyRoot = new TreeItem<>();
    dummyRoot.getChildren().addAll(root1, root2);
    TreeView<String> tree = new TreeView<>(dummyRoot);
    tree.setShowRoot(false);
    return tree ;
}
final TreeItem root1=新的TreeItem(“根1”);
最终TreeItem root2=新的TreeItem(“根2”);
最终树视图树=createTreeView(root1,root2);
// ...
私有TreeView创建TreeView(TreeItem root1,TreeItem root2){
TreeItem dummyRoot=新TreeItem();
dummyRoot.getChildren().addAll(root1,root2);
TreeView树=新的TreeView(dummyRoot);
tree.setShowRoot(false);
回归树;
}

是的,这是一种可能的解决方案。但后来它会使代码变得非常复杂。有别的解决办法吗?是的,我就是这么做的。所以现在,我想知道,是否有可能在树视图中的2个节点之间设置一个间隔?或者为此,我应该在2个树视图中维护数据?今天找到了这个答案,哇,詹姆斯,你又救了我一命!:)