我是 jtree 的新手。我想获取具有相同父节点的各个节点的唯一 ID 或值。
我尝试使用 valuechanged() 方法,但我只能获取每个节点的字符串值。
我想将当前选择节点与特定节点的一些唯一值进行比较。我怎样才能做到这一点?
我想我说清楚了。
有没有可用的可能性?
提前致谢..
TreeNode 有一个 getParent() 方法,你可以将它返回的对象引用与 == 进行比较。
如果您确实需要基于对象身份的唯一 id,请考虑 System.identityHashCode。请参阅以下问题: 当 toString() 和 hashCode() 已被覆盖时,如何在 java 中获取对象的“对象引用”?
我一直在为 DefaultMutableTreeNode 设置一个唯一的 Id。一种方法是创建一个简单的 CustomUserObject 类,该类具有两个属性,Id 和 Title。然后我们可以将 CustomUserObject 实例分配为 Node UserObject 属性。
为确保在 Tree 结构中仅显示 Title,请覆盖 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();