因此,节点内部有不同的名称但显示其他名称,我可以很容易地对原始名称应用搜索约束,但显示修改后的名称。
treePanel = new JUResourceTypeTreeStructurePanel
(I18N_ID, "menu.title", _panelBinding,VIEW_NAME,
masterBindings,MASTER_VIEW_SYNC,
wizard,archiveAction,toggleAction,unArchiveAction,
copyAction, pasteAction
);
JUCtrlHierTypeBinding[] masterBindings = new JUCtrlHierTypeBinding[]
{
new JUTreeAccessorTypeBinding("NodeType1", MASTER_VIEW_CLASS, "NameDate", "Children", masterIcon, masterIcon, masterIcon)
};
所以这里在主binf = ding namedate传递,get路径返回命名类型的路径,然后通过绑定选择,无论是通过任何id,名称等进行搜索我希望这个NAMEDATE是NAMEDATEID,为唯一搜索路径创建,但仅显示名称为nodename。
DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer()
{
public Component getTreeCellRendererComponent(JTree tree, Object value, Boolean selected, Boolean expanded, Boolean leaf, int row, Boolean hasFocus)
{
return super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
}
};
_SelectPanel.getJUTree()setCellRenderer(渲染);
有什么方法可以改变节点名称,任何人都可以建议。
答案 0 :(得分:1)
如完整的example所示,DefaultMutableTreeNode
“也可能包含对用户对象的引用。”您的userObject
可以在toString()
中返回显示名称,同时为搜索名称提供访问者。
附录:我只需要在那里显示名称,而不是日期。
getTreeCellRendererComponent()
DefaultTreeCellRenderer
方法会调用“convertValueToText()
,最终会在toString()
上调用value
。”您的实现应该使用您的首选值调用setText()
,可能是从super
实现建立的值派生的。