JTree如何以编程方式更改节点?

时间:2011-12-26 17:30:43

标签: java swing jtree treemodel

我第一次尝试使用和理解JTree,TreeModels,TreeModes等。我想使用树来表示我本地设备附近的蓝牙设备。我的蓝牙设备是树的根节点,根节点的任何FIRST后代都是附近的蓝牙设备。

我将我的树设置为以下开头(为简洁起见,代码缩短了):

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

当最初显示JTree时,根节点读取“本地蓝牙设备”。然而,一旦我初始化蓝牙堆栈,我希望根节点显示我的本地蓝牙设备的“友好名称”和地址。

我遇到的问题是如何更改根节点?我尝试了各种方法,包括为topTreeNode创建一个新的DefaultMutableTreeNode(),但JTree不会立即重新绘制。我应该实现一个听众吗?

感谢任何建议。

1 个答案:

答案 0 :(得分:2)

根据要求,将其作为答案发布:

我认为在根节点上调用getUserObject()可以获得您创建节点的内容。如果它是一个自定义对象及其可变对象,则可以设置其值:-)或者只是setUserObject()可以允许您进行更改。