从数据库制作 JTree
Make JTree from database
我有一个包含两列的数据库 parent
和 child
它有以下数据
parent | child
===================
sara | danny
sara | benny
dia | tom
aria | jenny
aria | sunny
我想像这样在 JTree
中显示它
-parent
*sara
+danny
+benny
*dia
+tom
*aria
+jenny
+sunny
从 ResultSet
我得到每一行..但是如何只创建一次 DefaultMutableTreeNode
并在单个 while
循环中添加子项?如何检查 node
是否已经创建?
我找到了这个解决方案,它可能是一个错误的方法,但它有效。所以我为每一行调用了 newRow
函数。
TreeMap group = new TreeMap();
void newRow(String Parent,String Child) {
if(group.containsKey(Parent)) {
//if Parent already in group return Arraylist of child
ArrayList<String> al = (ArrayList<String>) group.get(Parent);
//Add new Child to ArrayList
al.add(Child);
}
else {
ArrayList<String> al = new ArrayList<>();
al.add(Child);
//if new Parent add parent and its Child ArrayList
group.put(groupname,al);
}
}
当我遍历 TreeMap group
时,这是输出,我用它来制作 JTree
sara : [danny , benny]
dia : [tom]
aria : [jenny, sunny]
我有一个包含两列的数据库 parent
和 child
它有以下数据
parent | child
===================
sara | danny
sara | benny
dia | tom
aria | jenny
aria | sunny
我想像这样在 JTree
中显示它
-parent
*sara
+danny
+benny
*dia
+tom
*aria
+jenny
+sunny
从 ResultSet
我得到每一行..但是如何只创建一次 DefaultMutableTreeNode
并在单个 while
循环中添加子项?如何检查 node
是否已经创建?
我找到了这个解决方案,它可能是一个错误的方法,但它有效。所以我为每一行调用了 newRow
函数。
TreeMap group = new TreeMap();
void newRow(String Parent,String Child) {
if(group.containsKey(Parent)) {
//if Parent already in group return Arraylist of child
ArrayList<String> al = (ArrayList<String>) group.get(Parent);
//Add new Child to ArrayList
al.add(Child);
}
else {
ArrayList<String> al = new ArrayList<>();
al.add(Child);
//if new Parent add parent and its Child ArrayList
group.put(groupname,al);
}
}
当我遍历 TreeMap group
时,这是输出,我用它来制作 JTree
sara : [danny , benny]
dia : [tom]
aria : [jenny, sunny]