Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Заполнение JTree данными из БД


Автор: silokhin 5.12.2009, 18:28
Здравствуйте!
Помогите решить задачу:
Нужно заполнить JTree данными из БД. Поля таблицы:
Код

create table Persons (
person_id IDENTITY,
person_name VARCHAR(100),
person_manager INT NOT NULL,
PRIMARY KEY(person_id))

где person_manager - управляющий данного подчиненного.
У данного подчиненного тоже могут быть подчиненные, и т.д.
Нужно выстроить дерево согласно этой иерархии.

Автор: comcon1 8.12.2009, 12:03
Создаешь имплементацию http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/tree/TreeNode.html.

Код

class Person implements TreeNode {

TreeNode parent = null;

int id = 0;
int pid = 0;
String name = null;
Vector<TreeNode> children = new Vector<TreeNode>();

public Person(int id, int pid, String name) {
 this.id = id;
 this.pid = pid;
 this.name = name;
}

public getParent() {
 return parent;
}
....
....
// вот это не входит в имплементацию
public addChild(TreeNode ch) {
 children.add(ch);
 ch.parent = this;
}

}


Потом считываешь из БД в карту TreeMap<Integer, Person> map. Здесь ключ карты будет id элемента. Ну и потом спокойно в цикле расставляешь родителей (p.addChild) согласно параметру person_manager map.get(pid).

Ну и когда все это сделал - линкуешь все с JTree.

Автор: mkolmogorov 5.2.2010, 17:16
а можно, пожалуйста, поподробнее - как все должно выглядеть? (в виде кода)
а то сам впервые столкнулся с jtree, его надо заполнить из таблицы бд со структурой id - id_parent - name

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)