从数据库填充JTree

时间:2011-02-21 22:36:09

标签: java mysql swing jtree

我有一个包含字段category_id,category_name和parent_category_id的表。 parent_category_id具有category_id中的值,表示父子关系。我没有任何固定级别的层次结构,它可能达到5级或10级并且没有限制。我需要一个代码来实现这个JTree以使事情对我有用。我也应该能够在菜单栏中实现相同的功能..请帮助我...

谷歌搜索后我发现了这个,

Map<String, Node> idToNode = new HashMap<String, Node>();   

//create nodes from ResultSet   
while ( resultSet.next() ){       
    Node node = //create node -contains info, parent id, and its own id from ResultSet
    //put node into idToNode, keyed with its id   
}   

//link together   
Iterator<String> it = idToNode.keySet().iterator();   
Node root = null;   
while ( it.hasNext() ){          
    Node node = idToNode.get(it.next());       
    Node parent = idToNode.get(node.getParentId());   
    if ( parent == null ) {  
        root = node;  
    }else{  
       parent.addChild(node);  
    }  
}

如何编写这些注释说明?

1 个答案:

答案 0 :(得分:3)

使用DefaultMutableTreeNode创建节点

为节点创建ID映射 ​​- 当您从数据库中获取节点时,将它们存储在地图中,并将id作为其键。

获得所有节点后,再次浏览它们并匹配其父ID,从地图中检索它们。

假设您的树在数据库中结构合理,那么它就会发出声音。选择任何节点并跟随父链的根。

使用根对象,您可以创建JTree。 :)