Naeem Tahir Ответов: 1

Как заполнить многоуровневое дерево jtree из таблицы базы данных


у меня есть таблица базы данных, подобная следующей. Я хочу сделать динамическое jtree из таблицы.

id имя родитель
1 Цвет нулевой
2 красный 1
3 белый 1
4 зеленый 1
5 темный 4
6 свет 4

Что я уже пробовал:

Для извлечения таблицы из базы данных я уже написал следующий код.

while( rs.next() ) {  

 String parentId = rs.getString("node_Id");  
 String parentName = rs.getString("node_Name");
 String paren = rs.getString("node_Parent");
 int treeLvl = rs.getInt("node_Level");
// the above code is working perfectly fine, the problem start from here

 Map<String, DefaultMutableTreeNode> parentsMap
 = new HashMap<>();
    DefaultTreeModel tbl = (DefaultTreeModel) TreePro.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode)tbl.getRoot();

     DefaultMutableTreeNode Root = parentsMap.get(paren);

   Root = new DefaultMutableTreeNode( paren );

   parentsMap.put(parentId, Root );
   root.add(Root); 

 DefaultMutableTreeNode parent = parentsMap.get(parentName);

   parent = new DefaultMutableTreeNode( parentName );
   parentsMap.put(parentId, parent );
   Root.add(parent);

        }

Теперь он создает jtree вот так

Корень
Нулевой
-цвет
цвет
-красный
цвет
-белый
цвет
-зеленый
зеленый
-темный
зеленый
-свет
Очевидно, что это неправильно, как я могу правильно сделать jtree из таблицы базы данных. Теперь я надеюсь, что правильно сформулировал свой вопрос

1 Ответов

Рейтинг:
2

Richard MacCutchan

Вы воссоздаете корневой узел каждый раз в цикле. Вы должны создать корневой узел один раз в самом начале. Затем используйте цикл для добавления всех дочерних записей в корневой узел.