JTree Как программно изменить узел? - PullRequest
1 голос
/ 26 декабря 2011

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

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

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

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

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

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

1 Ответ

2 голосов
/ 27 декабря 2011

по запросу, опубликовав это как ответ:

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

...