Java 在JTree中动态添加节点

Java 在JTree中动态添加节点,java,arrays,recursion,tree,Java,Arrays,Recursion,Tree,我的列表中有这样的数据(还有其他数据,如百分比,但现在不重要),这些数据可能会有所不同: 1 1.1 1.1.1 1.1.2 1.2 2 2.1 2.2 我如何轻松地使用这些级别为任何给定的级别构建适当的JTree? 可以用递归完成吗? 最好的办法是什么 非常感谢。是的,使用递归可以很容易地完成。其思想是检查树中是否已经有一个节点,新节点可以落在该节点下。例如,如果新节点是“1.1.2”,那么我们必须检查树中是否存在节点“1.1”。我

我的列表中有这样的数据(还有其他数据,如百分比,但现在不重要),这些数据可能会有所不同:

1        
1.1    
1.1.1  
1.1.2  
1.2        
2     
2.1
2.2 
我如何轻松地使用这些级别为任何给定的级别构建适当的JTree? 可以用递归完成吗? 最好的办法是什么


非常感谢。

是的,使用递归可以很容易地完成。其思想是检查树中是否已经有一个节点,新节点可以落在该节点下。例如,如果新节点是“1.1.2”,那么我们必须检查树中是否存在节点“1.1”。我写了一个非常简单的代码,它正在工作,我将在这里处理。如果你不明白什么,就告诉我,我会给你解释的。下面给出了检查树是否具有特定字符串的节点的函数

public DefaultMutableTreeNode findparentnode(String s,DefaultMutableTreeNode root){
    DefaultMutableTreeNode parent=null;
    for (int i=0;i<root.getChildCount();i++) {
        if(s.equalsIgnoreCase(((DefaultMutableTreeNode)root.getChildAt(i)).toString())){
             parent = (DefaultMutableTreeNode)root.getChildAt(i);
            break;
        }
        else
            parent=findparentnode(s, (DefaultMutableTreeNode)root.getChildAt(i));
    }
    return parent;
}
public DefaultMutableTreeNode findparentnode(字符串s,DefaultMutableTreeNode根){
DefaultMutableTreeNode父级=null;

对于(int i=0;我能请你详细说明你已经尝试了什么,以及为什么它没有达到你期望的效果吗?
for(String s:list){
            String[] substr=s.split("\\.");
            String parent=substr[0];
            for(int i=1;i<substr.length-1;i++){
                parent=parent+ "." + substr[i];
            }
            DefaultMutableTreeNode node=null;
            node=findparentnode(parent,root);


            if(node==null)
                root.add(new DefaultMutableTreeNode(s));
            else
                node.add(new DefaultMutableTreeNode(s));

        }