IT_Programming/Java

DefaultTreeCellRenderer test

JJun ™ 2008. 8. 20. 08:16

 



import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;

public class TreeTest extends JFrame {
  JPanel jPanel1 = new JPanel();
  JTree tree;
  BorderLayout borderLayout1 = new BorderLayout();
  Icon openNode = new ImageIcon("C:/i1.jpg");
  Icon online = new ImageIcon("c:/i2.jpg");
  Icon closeNode = new ImageIcon("c:/i3.jpg");
  public TreeTest() {
    try {
      Init();
      tree.setRootVisible(true);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) {
    TreeTest test = new TreeTest();
    test.setSize(300, 500);
    test.setVisible(true);
  }

  private void Init() throws Exception {
   String rsmd1[]={"일지매","홍길동","android","경품","로또"};
     String name=null;
     DefaultMutableTreeNode parent = new DefaultMutableTreeNode("친구", true);
//확인방법 여기서    
     for(int i=0;i<=4;i++){
     name=rsmd1[i];//배열에서 문자열 가져오고
    
     DefaultMutableTreeNode DbData = new DefaultMutableTreeNode(name);
     parent.add(DbData);
     }
// 여기까지 주석 하고 실행하고 하지 않고 실행 해보면 됨     
     
     tree = new JTree(parent);
 
    jPanel1.setLayout(borderLayout1);
    this.getContentPane().add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(tree, BorderLayout.CENTER);

    tree.setCellRenderer(new MyRenderer());
  }
  class MyRenderer extends DefaultTreeCellRenderer
  {
   public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus)
   {
   

    super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
    if (expanded)//그룹 열렸을때 아이콘
    {
     setIcon(openNode);
    }
    else if(!expanded && leaf) //그룹이 열리지않고 리프노드일때(즉 친구아이콘)
    {
   // 여기 if문은 사용자가 프로그램하기 나름  

  // 이 경우는 친구그룹인가를 확인하고 아이콘을 제어합니다.

  if(value.toString().equals("친구"))setIcon(closeNode);
    else     setIcon(online);
    }
    else if(!expanded)//그룹이 닫혔을때
    {
     setIcon(closeNode);
    }
     return this;
   }
  }


'IT_Programming > Java' 카테고리의 다른 글

다중파일 전송   (0) 2008.08.20
자바 그림 불러오기   (0) 2008.08.20
JInternalFrame   (0) 2008.08.20
java 24시간제를 12시간제로 바꾸기   (0) 2008.08.20
java StringTokenizer   (0) 2008.08.20