如何获得jtree中每个节点的唯一id或值?
问题描述:
我是jtree的新手。我想要获得具有相同父级的单个节点的唯一标识或值。如何获得jtree中每个节点的唯一id或值?
我试着用valuechanged()方法,但我只能得到每个节点的字符串值。
我想比较当前选择节点与特定节点的某个唯一值。我怎样才能做到这一点?
我想我说得很清楚。
有没有可能的可用?
在此先感谢..
答
树节点拥有的getParent()方法,你可以比较返回它与==对象引用。
如果您确实需要基于对象标识的唯一标识,请考虑System.identityHashCode。看到下面的问题: How do you get the "object reference" of an object in java when toString() and hashCode() have been overridden?
答
我一直在努力为DefaultMutableTreeNode设置一个唯一的ID。一种方法是创建一个简单的CustomUserObject类,它具有两个属性Id和Title。然后,我们可以将CustomUserObject实例指定为Node UserObject属性。
要确保只有标题显示在树结构中,请覆盖CustomUserObject类中的toString()方法。
/* CustomUserObjectClass */
public class CustomUserObject implements Serializable {
private int Id = 0;
private String Title = null;
public CustomUserObject(int id, String title) {
this.Id = id;
this.Title = title;
}
public CustomUserObject() {
}
public int getId() {
return this.Id;
}
public String getTitle() {
return this.Title;
}
public void setId(int id) {
this.Id = id;
}
public void setSutTitle(String title) {
this.sutTitle = title;
}
@Override
public String toString() {
return this.Title;
}
我们创建一个新的节点:
CustomUserObject uObj = new CustomUserObject(1, "My First Node");
DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(uObj);
uObj = childNode.getUserObject();
uObj.getId();
uObj.getTitle();
但是独特的价值变化,当我运行项目again.How解决我的问题?请帮助我.... – 2012-07-16 07:54:16
如果您希望在重新启动应用程序后保持该值不变,您不得不在自己的某处实现此逻辑(例如,在DefaultMutableTreeNode的userObject字段中)。 – lbalazscs 2012-07-18 10:26:04