문제

트리 노드가 있습니다. 트리를 볼 때 노드 이름 옆에 이미지가 표시되기를 원합니다. 어떻게 가나 요?

도움이 되었습니까?

해결책

  1. 이미지에서 imageicon을 만듭니다

    imageicon icon = ....; (이를 수행하는 방법에는 여러 가지가 있습니다)

  2. DefaultTreeCellrenderer 인스턴스를 만듭니다

    DefaultTreeCellrenderer renderer = 새로운 DefaultTreeCellrenderer ();

  3. 렌더러의 리프 아이콘 필드를 설정하십시오

    renderer.setleaficon (아이콘);

  4. 트리의 렌더러를 설정하십시오

    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;



}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top