如何在jtree中重命名节点

我创建了一个Jtree,它的所有节点都有User对象,我通过ItemInfo类填充用户对象,现在我的问题是重命名节点。 我可以编辑我的节点但是因为我尝试找到我的UserObject,当我按下F2并重命名我的节点时,我看到了我的UserObject!

所以现在我想知道我应该手动触摸用我以前的名字替换我的节点新名称的位置?

我想我需要编写自己的DefaultTreeCellRenderer类,请指教我…(如果是的话,我的参考是什么例子)

public class ItemInfo { public String Name; public String Value; public long ValueID; public ItemInfo(String Name, String Value) { this.Name = Name; this.Value = Value; } public ItemInfo(String Name, long ValueID) { this.Name = Name; this.ValueID = ValueID; } public String toString() { return Name; } public String getValue() { return Value; } public long getValueID() { return ValueID; } } 

您是否按照本教程中的描述添加了TreeModelListener ? 在侦听器中,如果节点已更改并更新其用户对象,则会通知您。

编辑:请参阅DefaultTreeModel.valueForPathChanged javadoc:

这将设置由路径标识的TreeNode的用户对象,并发布更改的节点。 如果在TreeModel中使用自定义用户对象,则需要对其进行子类化,并将已更改节点的用户对象设置为有意义的用户对象。

重写此方法并使用新节点名称更新对象。