java我有一个JTree,我想应用渲染器,以便修改JTree节点的显示名称
这样,节点在内部具有不同的名称,但显示其他名称,这将很容易对原始名称应用搜索约束,但显示修改后的名称
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)
};
因此,在master binf=ding namedate中,get path返回namedate类型的路径,然后通过绑定选择该路径,无论搜索是否通过任何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);
}
};
\u选择面板。getJUTree()。setCellRenderer(渲染器)
有什么方法可以更改节点名称,任何人都可以建议
# 1 楼答案
如本完整的example中所示,
DefaultMutableTreeNode
“还可能包含对用户对象的引用。”您的userObject
可以在toString()
中返回显示名称,同时为搜索名称提供访问器附录:我只需要显示姓名,不需要日期
DefaultTreeCellRenderer
的getTreeCellRendererComponent()
方法调用“convertValueToText()
,它最终调用value
上的toString()
”相反,您的实现应该使用首选值调用setText()
,该值可能来自super
实现建立的值