获取 treeitem Javafx 的名称

get name of treeitem Javafx

我想获取每个 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 [值:]我只想要像函数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());

您正在做的是:

parentChild.put(node.getValue().toString(),node.getChildren());

您正在添加 node.getChildren(),它具有 ObservableList<TreeItem<T>> 的 return 值。您正在将其添加到具有值列表的 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());
    }
}

这应该会打印出您的 "Function X" 个字符串。