자바 트리 노드 객체와 이미지의 연관
문제
트리 노드가 있습니다. 트리를 볼 때 노드 이름 옆에 이미지가 표시되기를 원합니다. 어떻게 가나 요?
해결책
이미지에서 imageicon을 만듭니다
imageicon icon = ....; (이를 수행하는 방법에는 여러 가지가 있습니다)
DefaultTreeCellrenderer 인스턴스를 만듭니다
DefaultTreeCellrenderer renderer = 새로운 DefaultTreeCellrenderer ();
렌더러의 리프 아이콘 필드를 설정하십시오
renderer.setleaficon (아이콘);
트리의 렌더러를 설정하십시오
Tree.SetCellrenderer (렌더러);
다른 팁
맞춤형 리프 렌더러를 사용할 수 있습니다. getTreeCellrenderComponent () 메소드를 무시하십시오.
구성 요소를 렌더링 할 때.
패널을 사용하고 텍스트를 먼저 놓고 아이콘을 텍스트에 넣으십시오.
그런 다음 구성 요소를 반환합니다.
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean selected, boolean expanded, boolean leaf, int row,
boolean hasFocus) {
JLabel l = (JLabel)renderer.getTreeCellRendererComponent(
tree, "", true, expanded, leaf, row, true);
Component com = renderer.getTreeCellRendererComponent(
tree, "", true, expanded, leaf, row, true);
l.setIcon(YOUR_IMAGE);
l.setText(value.toString());
panel.removeAll();
panel.add(this, BorderLayout.EAST);
panel.add(j);
return panel;
}
제휴하지 않습니다 StackOverflow