노드에 내부적으로 다른 이름이 있지만 다른 이름이 표시되므로 검색 제약 조건을 쉽게 적용 할 수 있습니다. 원래 이름이지만 수정 된 이름을 표시합니다. 그래서 여기 마스터 = 땡 namedate이 통과 binfJTree가 있고 렌더러를 적용하여 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)
};
는 경로를 얻는 것은 다음의 검색 어떤 ID 통해 여부, 결합을 통해 선택된 namedate 타입 I이 NAMEDATE이 원하는 이름 등의 경로를 반환 고유 한 검색 경로 작성을 위해 NAMEDATEID를 사용하지만 이름 만 노드 이름으로 표시하십시오.
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 (renderer);
어떤 노드가 노드 이름을 변경했는지, 아무도 제안 할 수있는 것이 없습니다.
나는 renderer를 적용했고 바인딩에 나는 juresourcetypetreestructurepanel을 전달하고자하는 수정 된 속성 이름을 전달했다. 그래서 searchin getpath() 함수는이 노드에 따라 treepath를 반환하지만 tree의 디스플레이에 수정 된 이름을 표시하도록한다. –
나는 이것을 위해 렌더링을 사용해야하는 방법에 대한 일반적인 아이디어가 필요하다. 코드를 기밀로 공유 할 수있다. –
더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오 (SSCCE는 비공개 코드가 아니며 정확한 문제에 집중하는 예제입니다). 이 문서는 [이 질문] (http://meta.stackexchange.com/q/214955/155831)에서 검토 및 토론되고 있으며 기고가 환영합니다. –