使用TreeCellRenderer在JTree上显示信息

时间:2019-03-14 06:56:28

标签: java swing

我正在使用JTree,在这里我要显示我插入的objets的一个特定属性。

当我创建JTree时,我使用DefaultMutableTreeNodeDefaultTreeModel和一个具有某些特定属性的对象Units来执行此操作。该对象具有名称,类型,坐标,方位等属性:

JTree unitsTree;
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Unit Types");
DefaultTreeModel treeModel = new DefaultTreeModel(root);
DefaultMutableTreeNode newUnitNode = new DefaultMutableTreeNode(((Units) symbol).getName(), true);
newUnitNode.setUserObject(((Units) symbol));
unitsTree.setModel(treeModel);
unitsTree.addTreeSelectionListener(fSymbolCustomizerPanelSelectionListener);

我在这里要做的是创建一个JTree,其中包含一些Units,当我单击Units节点之一时,将在另一个面板中显示其属性。当我这样做时:

DefaultMutableTreeNode newUnitNode = new DefaultMutableTreeNode(((Units) symbol).getName(), true);

当我将节点添加到模型中的JTree时,我可以看到newUnitNode显示了JTree的名称。但是我需要在JTree上有整个对象引用,而不仅仅是名称,所以我这样做:

DefaultMutableTreeNode newUnitNode = new DefaultMutableTreeNode(((Units) symbol).getName(), true);
newUnitNode.setUserObject(((Units) symbol));

我的问题在这里。在将用户对象设置为节点时,JTree不会显示单元名称。相反,它显示的是其他属性,例如我的单位类型。

我看到许多论坛都在谈论TreeCellRenderer,但是我无法弄清楚如何使用TreeCellRenderer来显示我想在JTree中显示的属性。

感谢您的帮助!

0 个答案:

没有答案
相关问题