我正在使用JTree
,在这里我要显示我插入的objets的一个特定属性。
当我创建JTree时,我使用DefaultMutableTreeNode
,DefaultTreeModel
和一个具有某些特定属性的对象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
中显示的属性。
感谢您的帮助!