Java 我有一个JTree,我想应用渲染器,以便修改JTree节点的显示名称

Java 我有一个JTree,我想应用渲染器,以便修改JTree节点的显示名称,java,swing,jtree,Java,Swing,Jtree,这样,节点在内部具有不同的名称,但显示其他名称,这将很容易对原始名称应用搜索约束,但显示修改后的名称 treePanel = new JUResourceTypeTreeStructurePanel (I18N_ID, "menu.title", _panelBinding,VIEW_NAME, masterBindings,MASTER_VIEW_SYNC, wizard,archiveAction,toggleAction,unArchiveAction,

这样,节点在内部具有不同的名称,但显示其他名称,这将很容易对原始名称应用搜索约束,但显示修改后的名称

 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);
  } 
  };
_选择panel.getJUTree().setCellRenderer(渲染器)

有什么方法可以更改节点名称,任何人都可以建议。

如本完整部分所示,
DefaultMutableTreeNode
“还可能包含对用户对象的引用。
userObject
可以在
toString()
中返回显示名称,同时为搜索名称提供访问器

附录:我只需要在那里显示姓名,而不是日期


DefaultTreeCellRenderer
GetTreeCellRenderComponent()
方法调用“
convertValueToText()
,它最终调用
toString()
上的
toString()
”,而您的实现应该使用首选值调用
setText()
,可能来自
super
实现所建立的值

我已经将渲染器应用于绑定,我已经传递了一个修改过的属性名,我想传递JuresourceTypeReStructurePanel,这样当searchin getpath()函数根据此节点返回treepath时,我想在树的显示中显示修改过的名称。我需要一个关于如何使用渲染的一般概念,可以共享其机密代码。为了更快地获得更好的帮助,请发布(SSCCE不是您的私人代码,只是一个专注于确切问题的示例)。请注意,文档正在审阅和讨论中,欢迎您的贡献。@hashit我经常遇到类似的情况,我的公司不喜欢共享一些代码。你能给我们一个想法吗,即使是伪代码或精简代码?是的,等等,因为ppl正在扼杀我在这里的声誉。但是“namedate”是树的完整节点名,我只需要在那里显示名称,而不需要显示日期,当基于名称日期进行搜索时,渲染器中没有覆盖节点名称的函数。