Java JTree获取选定节点的名称

问题描述 投票:0回答:2

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

java swing jtree treenode
2个回答
2
投票

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

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


编辑您在编辑中声明:

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

同样,变量名几乎没有意义,并且在已编译的代码中几乎不存在。计数是变量references-能够获取变量,而对象state-该变量所保存字段的状态。


0
投票

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

我认为这几乎是您要搜索的内容-至少我在搜索它。

© www.soinside.com 2019 - 2024. All rights reserved.