JAVA Tree CellRenderer - Icon setting
트리의 노드형태는 리스트와 콤보박스와 마찬가지로 CellRenderer인터페이스를 통해 관리한다.
TreeCellRenderer라는 인터페이스가 있고, 이것을 구현한 DefaultTreeCellRenderer가 존재한다.
DefaultCellRenderer에는 노드의 아이콘을 변경할 수 있는 메소드 들이 존재한다.
- void setLeafIcon(Icon icon) - leafnode 의 아이콘을 icon으로 설정한다.
- void setClosedIcon(Icon icon) - 닫혀진 node의 아이콘을 icon으로 설정한다.
- void setOpenIcon(Icon icon) - 열린 node의 아이콘을 icon으로 설정한다.
다음 예제는 DefaultTreeCellRender를 이용하여 아이콘을 변경하는 예제이다.
순서는 다음과 같다.
- 트리의 노드들을 생성하고 , 붙여주어서 트리를 만든다.
- DefaultCellRenderer객체를 하나 만들고, 아이콘 설정 메소드들를 이용하여 아이콘 설정
- 트리의 setRenderer()메소드를 이용하여 renderer를 변경한다.
- 완성된 트리를 pane에 붙임으로 완성한다.
- import javax.swing.*;
- import javax.swing.tree.*;;
- protected JTree tree;
- public TreeIcon(){
- super("아이콘이 있는 트리");
- //트리만들어주기
- parent.add(child1);
- parent.add(child2);
- root.add(parent);
- //아이콘을 변경해주기
- tree.setCellRenderer(renderer);
- tree.setEditable(true);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- setSize(300,200);
- setVisible(true);
- }
- new TreeIcon();
- }
- }
댓글
댓글 쓰기