TreeView(TreeItem) - 获取层次结构索引可能吗?

时间:2014-11-25 13:26:47

标签: java javafx treeview

我有一个如下所示的TreeView:

-Parent1
- - Child1
- - Child2
- - - Subchild1
-Parent2
- - Child99

是否有方法或简单的方法来获取树中TreeItem的层次索引?

例如:

Parent1 的分层索引为0

Child1 的分层索引为1

Subchild1 的分层索引为2

Parent2 的分层索引为0

Child99 的分层索引为1

1 个答案:

答案 0 :(得分:0)

唯一要考虑的是使用Java Reflect API,getSuperclass()方法,正如Java doc所说:http://da2i.univ-lille1.fr/doc/tutorial-java/reflect/class/getSuperclass.html

请参阅以下示例:

public class Subclass{


    public static void main(String[] args) {
        Map map = new HashMap();
        Map map2 = new HashMap();
        printSuperclasses(map);
        printSuperclasses(map2);
}

    static void printSuperclasses(Object o) {
        Class subclass = o.getClass();
        Class superclass = subclass.getSuperclass();
        int i=0;
        while (superclass != null) {
           String className = superclass.getName();
           i++;
           System.out.println(className+" "+i);
           subclass = superclass;
           superclass = subclass.getSuperclass();
        }
     }
}

此示例提供的输出是:

java.util.AbstractMap 1

java.lang.Object 2

java.util.AbstractMap 1

java.lang.Object 2

这意味着在层次结构中,Map对象的父级是AbstractMap(索引1),而AbstractMap的父级是Object(索引2)。