对于某个选定TreeNode,如何得到它是处在第几层?

解决方案 »

  1.   

    int level = tree.getSelectionPath().getPathCount();
      

  2.   

    谢谢楼上的,可能我说的不清数,我想要的是任意一个TreeNode,不一定是选定了的那个,改如何获得?
      

  3.   

    那总得有一个获得的依据,不然你怎么知道你要得到的是这个节点的深度,而不是那个节点的深度?
    如果说你想通过节点上显示出来的名称来得到该节点的深度的话
    你可以
    jTree.setSelectionPath(jTree.getNextMatch(name,0,null));
    来设置一条路径,
    然后,
    int level = tree.getSelectionPath().getPathCount();
    就可以进一步得到该节点的深度了!
      

  4.   

    一般你选中一个Node的时候,会触发TreeSelectionEvent,这个事件有两个方法
    TreePath newLeadSelectionPath()
    TreePath oldLeadSelectionPath()
    可以分别获得一个TreePath对象以对应原来的Node和现在选中的Node。TreePath tp;
    Object[] o = tp.getPath();
    o.length就是层。另外,创建一个JTree的子类,并重载方法
    public void fireValueChanged(TreeSelectionEvent tse) {
        TreePath tp = tse.getNewLeadSelectionPath();
        Object o = tp.getLastPathComponent();
    }
    当选择Node时,这个方法会被调用,从中可以得到TreePath。
      

  5.   

    同意diyucity(都督) 观点,学习
      

  6.   

    刚做了一个小作品,欢迎大家访问,并提意见建议
    http://community.csdn.net/Expert/topic/4683/4683929.xml?temp=.0502283