라벨이 CellRenderer인 게시물 표시

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.*;;   public   class  TreeIcon  extends   JFrame {      protected   JTree  tree;          public  TreeIcon ( ) {          super ( "아이콘이 있는 트리" ) ;                  //트리만들어주기   ...

JAVA CellRenderer Demo

이미지
List의 하나의 구성요소들이 표현되는 하나하나를 Cell이라고 하고, 그 Cell을 Render를 통해서 원하는 형태로 표현할 수 있게 해준다. 버튼을 수정하는 것처럼, List, ComboBox,Tree등 Cell을 편집 할 수 있는데, 그러기 위해서는 Renderer Interface를 구현하여야 한다. List의 경우, ListCellRenderer Interface를 구현해야한다. default Renderer들은 기본적으로 JLabel을 상속받음으로 JLabel의 메소드를 사용할 수 있다. ListCellRenderer를 변형하여, List와 관련된 아이콘을 찾아서 같이 표현해주는 Renderer를 구현해보자. ListCellRenderer에는 public  Component  getListCellRendererComponent( JList  list, Object  value,int index             ,boolean isSelected,boolean CellHasFocus)  ListCellRenderer를 구성하는 Component를 가져오는 메소드가 있다. IconCellRenderer.java import java.util.*; import javax.swing.*; import java.awt.*; public   class  IconCellRenderer  extends   DefaultListCellRenderer {      protected   Hashtable  icons;      public  IconCellRenderer ( ) {          //key - value 연...