从数据库创建JTree

时间:2015-10-12 19:10:15

标签: java jtree

我有一个包含两列parentchild的数据库 它有以下数据

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是否已经制作好?

1 个答案:

答案 0 :(得分:0)

我找到了这个解决方案,这可能是一个错误的方法,但它有效。所以我为每一行调用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时,这就是outPut,我用它来制作JTree

sara : [danny , benny]
dia : [tom]
aria : [jenny, sunny]