2011-12-26 5 views
1

Я пытаюсь в первый раз использовать и понимать JTrees, TreeModels, TreeModes и т. Д. Я хочу использовать Tree для представления устройств Bluetooth вблизи моего локального устройства. Мое устройство Bluetooth является корневым узлом дерева, и любые ПЕРВЫЕ потомки из корневого узла будут устройствами Bluetooth поблизости.JTree Как изменить узел программно?

Я настроил мое дерево, чтобы начать с следующим (код укорачивается для краткости):

topTreeNode = new DefaultMutableTreeNode("Local Bluetooth Device"); 
treeModel = new DefaultTreeModel(topTreeNode); 
jTree1 = new javax.swing.JTree(treeModel); 

Когда JTree сначала отображается корневой узел считывает «Local Bluetooth Device». Однако, как только я инициализирую стек Bluetooth, я бы хотел, чтобы корневой узел отображал «дружественное имя» и адрес моего локального устройства Bluetooth.

Проблема, с которой я столкнулась, - это как изменить корень узла? Я пробовал различные методы, в том числе создание нового DefaultMutableTreeNode() для topTreeNode, но JTree не перерисовывает сразу. Должен ли я использовать слушателя?

Любые советы приветствуются.

+2

Я думаю, что вызов getUserObject() на корневом узле должен дать вам то, с чем вы создали узел. Если его пользовательский объект и его изменяемый, вы можете установить его значение :-) Или просто setUserObject() может позволить вам изменить его в любом случае. – aishwarya

+0

Спасибо aishwarya. Если вы опубликуете в качестве ответа, я отдам вам это. – Kerry

ответ

2

в соответствии с просьбой, отправляю это в качестве ответа:

я думаю, ссылающегося getUserObject() на корневой узел должен получить, что вы создали узел с. Если его пользовательский объект и его изменяемый, вы можете установить его значение :-) Или просто setUserObject() может позволить вам изменить его в любом случае.