簡體   English   中英

在 JTree 中動態添加節點

[英]Dynamically add nodes in a JTree

我在一個可以變化的列表中有這樣的數據(還有其他數據,如百分比,但現在不重要):

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;
}

現在,我們將檢查列表中的每個字符串。 我們將跳過字符串的最后一部分,並將剩余的值傳遞給函數。 要檢查字符串,代碼如下

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));

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM