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 |