得到treeitem Javafx的名字

时间:2015-03-11 19:11:03

标签: javafx treeview

我想得到每个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());

1 个答案:

答案 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;字符串。