我想了解如何获取 JTree 中所选节点的名称,而不是作为树节点文本的 userObject。
我手动创建了几个树节点,我需要根据节点名称确定选择哪一个。
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("Hey it's node1!");
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Hey, it's node2!");
root.add(node1); root.add(node2);
现在,基于此,我需要知道是否选择了node1或node2。我想要返回值node1或node2(变量名)。
为了更清楚地说明这一点:我有一个 JFrame、一个 JPanel、一个 JScrollPane、一个 JTree 和一些文本字段。根据单击的节点(节点 1 或节点 2),我想显示或隐藏某些文本字段。
最佳答案
如果我希望我的节点有一个名称,我会扩展基类,这里是 DefaultMutableTreeNode,并给它一个字符串名称字段,然后通过构造函数填充该字段,该构造函数同时接受一个字符串名称参数和字符串文本参数。然后还给它一个 getter 方法。
我不会尝试获取它的“变量”名称,因为这几乎毫无意义。许多变量甚至没有“名称”,一个对象可以被 2、3、100、... 变量引用。
<小时/>编辑
您在编辑中声明:
To make this more clear: I have a JFrame, with a JPanel, a JScrollPane, a JTree, and some text fields. Depending on which node is clicked (node 1, or node 2), I want to show or hide certain text fields.
同样,变量名几乎毫无意义,并且几乎不存在于编译的代码中。重要的是变量引用 - 能够获取变量,以及对象状态 - 该变量所保存的字段的状态。
关于Java JTree 获取所选节点的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21098319/