如何显示我的 TreeItem 层次结构 [JavaFX]

How to show my TreeItem hierarchy [JavaFX]

我有一个关于如何显示我的 treeView 层次结构的问题...举个例子,我有这样的东西....

如果我双击 child2 我想显示这样的东西...

root > parent1 > parent1.1 > child2

获取TreeItem的层级并不是一件难事。只需重复到父节点遍历树即可:

static String createString(TreeItem<String> item) {
    List<TreeItem<String>> hierarchy = new ArrayList<>();
    while (item != null) {
        hierarchy.add(item);
        item = item.getParent();
    }

    // list iterator positioned at the end of the list
    ListIterator<TreeItem<String>> iterator = hierarchy.listIterator(hierarchy.size());

    StringJoiner sj = new StringJoiner(" > ");

    // join Strings in reverse order
    while (iterator.hasPrevious()) {
        sj.add(iterator.previous().getValue());
    }
    return sj.toString();
}

当您收到双击 TreeCell 的鼠标事件(无论您用 "showing" 表示什么)时,使用它来显示项目。