Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取jtree中每个节点的唯一id或值?_Java_Swing_Jtree - Fatal编程技术网

Java 如何获取jtree中每个节点的唯一id或值?

Java 如何获取jtree中每个节点的唯一id或值?,java,swing,jtree,Java,Swing,Jtree,我是新来的。我想获得具有相同父节点的单个节点的唯一id或值 我尝试使用valuechanged()方法,但只能获得每个节点的字符串值 我想将当前选择的节点与特定节点的某个唯一值进行比较。我怎样才能做到这一点 我想我说得很清楚 有什么可能性吗 提前感谢..TreeNode有一个getParent()方法,您可以将返回的对象引用与==进行比较 如果你真的需要一个基于对象身份的唯一ID,考虑System.identityHashCode。见以下问题: 我一直在为DefaultMutableTreeNo

我是新来的。我想获得具有相同父节点的单个节点的唯一id或值

我尝试使用valuechanged()方法,但只能获得每个节点的字符串值

我想将当前选择的节点与特定节点的某个唯一值进行比较。我怎样才能做到这一点

我想我说得很清楚

有什么可能性吗

提前感谢..

TreeNode有一个getParent()方法,您可以将返回的对象引用与==进行比较

如果你真的需要一个基于对象身份的唯一ID,考虑System.identityHashCode。见以下问题:


我一直在为DefaultMutableTreeNode设置唯一Id。一种方法是创建一个简单的CustomUserObject类,它有两个属性,Id和Title。然后,我们可以将CustomUserObject实例指定为节点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();

但是,当我再次运行项目时,这个独特的值发生了变化。如何解决我的问题?请帮助我…如果你想在重新启动应用程序后保持值不变,没有简单的方法,你必须自己在某个地方实现这个逻辑(例如在DefaultMutableTreeNode的userObject字段中)。