繁体   English   中英

Java JTree 获取所选节点的名称

[英]Java JTree get name of selected node

我想了解如何获取 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),我想显示或隐藏某些文本字段。

如果我想让我的 Node 有一个名字,我会扩展基类,这里是 DefaultMutableTreeNode,并给它一个 String name 字段,然后通过构造函数用一个值填充该字段,一个同时接受 String name 参数和字符串文本参数。 然后也给它一个getter方法。

我不会尝试获得它的“变量”名称,因为它接近无意义。 许多变量甚至没有“名称”,即一个对象可以被 2、3、100、...变量引用。


编辑
您在编辑中声明:

为了更清楚地说明这一点:我有一个 JFrame,带有一个 JPanel、一个 JScrollPane、一个 JTree 和一些文本字段。 根据单击的节点(节点 1 或节点 2),我想显示或隐藏某些文本字段。

同样,变量名几乎毫无意义,并且几乎不存在于编译代码中。 重要的是变量引用——能够获取一个变量和对象状态——该变量所持有的字段的状态。

该线程有点旧,但在我看来,您不必派生任何类。 当您使用可选参数 userObj 初始化 DefaultMutableTreeNode 对象时,您可以通过调用 getUserObject() 再次获取此参数。 有关更多信息,请参阅 api: https : //docs.oracle.com/javase/10/docs/api/javax/swing/tree/DefaultMutableTreeNode.html

我认为这几乎是您正在寻找的东西 - 至少我正在寻找它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM