【发布时间】:2023-03-30 01:57:01
【问题描述】:
我想了解如何在 JTree 中获取所选节点的名称,而不是作为 treenode 文本的 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 root = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("嘿,这是 node1!"); DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("嘿,是node2!"); root.add(node1); root.add(node2);现在,基于此,我需要知道是否选择了 node1 或 node2。我想要 node1 或 node2 的返回值。
-
好的,.....那么,“名称”是什么意思?如果这就是你的意思,变量名没有什么意义和实用性。
-
这是经典的XY problem。
-
@AndrewThompson:阿门!他没有意识到变量名称几乎毫无意义,许多变量甚至没有“名称”,一个对象可以被 2、3、100,... 变量引用。这个问题没有意义。他必须描述他试图解决的问题,而不是他试图解决的方式,因为他肯定是走错了路。