我想得到每个treeitem节点的名称和每个的父项,然后将它们放在树形图中,但是当我运行这个示例代码时,我将这些结果作为值:
[TreeItem [ value: Function 12 ], TreeItem [ value: Function 13 ]]
[TreeItem [ value: Function 6 ]]
[TreeItem [ value: Function 15 ]]
[TreeItem [ value: Function 9 ], TreeItem [ value: Function 10 ]]
我怎样才能获得额外的东西[TreeItem [value:]我只想要像Function 12这样的字符串
ArrayList<String> kids = new ArrayList<>();
TreeMap<String, List<String>> parentChild = new TreeMap<>();
for (TreeTableColumn<String, ?> tt : treeTable.getColumns()) {
for (TreeItem node : root.getChildren()) {
if (!node.isLeaf()) {
parentChild.put(node.getValue().toString(),node.getChildren());
}
}
}
for(Entry<String, List<String>> ent : parentChild.entrySet())
System.out.println(ent.getValue());
答案 0 :(得分:1)
您正在做的是以下内容:
parentChild.put(node.getValue().toString(),node.getChildren());
您正在添加node.getChildren(),其返回值为ObservableList<TreeItem<T>>
。并且您将此添加到具有值列表的TreeMap。您应该将地图更改为
TreeMap<String, List<TreeItem<String>>> myMap = new TreeMap<>();
之后,您可以稍后使用以下内容循环播放:
for(TreeItem node: root.getChildren(){
parentChild.put(node.getValue().toString(), node.getChildren());
}
for(Entry<String, List<TreeItem>> ent: parentChild.entrySet(){
for(TreeItem myItem : ent.getValue()){
System.out.println(myItem.getValue());
}
}
这应该打印你的&#34;功能X&#34;字符串。