从数据库填充 JTree
Posted
技术标签:
【中文标题】从数据库填充 JTree【英文标题】:Populating JTree from database 【发布时间】:2011-07-01 14:52:55 【问题描述】:我有一个包含字段 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】:使用DefaultMutableTreeNode 创建你的节点
制作一个 ID 到节点的映射 - 当您从数据库中获取节点时,将它们存储在映射中,并将 id 作为它们的键。
获得所有节点后,再次遍历它们并匹配它们的父 ID,从地图中检索它们。
假设您的树在数据库中的结构是健全的,那么它在这里是健全的。选择任意一个节点并跟随父链的根。
使用根对象,您可以创建 JTree。 :)
【讨论】:
顺便说一句,我不一定有代码。但我觉得这里有你需要的工具来完成它:) 可以根据需要查找每件事。 我实际上没有时间编写这个东西。再过 2 个小时,我应该能够完成这部分,所以你能找到类似的东西吗?即使我在谷歌上寻求帮助,但没有任何帮助..谢谢! 这些活动中的每一个都有明确的记录。我自己从未使用过它们,但算法是合理的。我无法想象这样的场景(假设你甚至是一个称职的开发人员,因为你的帖子很清楚,我认为这是一个安全的假设)你需要一个多小时才能做到这一点。假设编译时间为 2-3 分钟,这似乎真的需要 10 分钟的代码和 20 分钟的调试时间。 “我实际上没有时间编写这个东西。” ——太珍贵了!以上是关于从数据库填充 JTree的主要内容,如果未能解决你的问题,请参考以下文章