【问题标题】:JTree How To Change A Node programmatically?JTree 如何以编程方式更改节点?
【发布时间】:2011-12-26 17:30:43
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 我认为在根节点上调用 getUserObject() 应该可以得到你创建节点的内容。如果它是一个自定义对象并且它是可变的,那么你可以设置它的值 :-) 或者只是 setUserObject() 可以让你改变它。
  • 谢谢艾西瓦娅。如果您将其作为答案发布,我会将其归功于您。

标签: java swing jtree treemodel


【解决方案1】:

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

我认为在根节点上调用 getUserObject() 应该会得到你创建节点的内容。如果它是一个自定义对象并且它是可变的,那么你可以设置它的值 :-) 或者只是 setUserObject() 可以让你改变它。

【讨论】:

    猜你喜欢
    • 2011-11-12
    • 2012-05-01
    • 2014-07-31
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 2019-12-03
    • 1970-01-01
    相关资源
    最近更新 更多