응용 SoftWare/JAVA

JTree 예제

Hyun CHO 2016. 12. 21. 16:29

import java.util.StringTokenizer;


import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTree;

import javax.swing.event.TreeExpansionEvent;

import javax.swing.event.TreeExpansionListener;

import javax.swing.event.TreeSelectionEvent;

import javax.swing.event.TreeSelectionListener;

import javax.swing.tree.DefaultMutableTreeNode;

import javax.swing.tree.TreePath;


public class JTreeTest extends JFrame implements TreeExpansionListener, TreeSelectionListener{

JTree tree;

DefaultMutableTreeNode node, languageNode, webNode, htmlNode, frameworkNode;

JLabel lbl = new JLabel();

public JTreeTest() {

node = new DefaultMutableTreeNode("Root");

languageNode = new DefaultMutableTreeNode("language");

node.add(languageNode);

languageNode.add(new DefaultMutableTreeNode("Java"));

languageNode.add(new DefaultMutableTreeNode("Asp"));

languageNode.add(new DefaultMutableTreeNode("Jsp"));

webNode = new DefaultMutableTreeNode("web");

node.add(webNode);

htmlNode = new DefaultMutableTreeNode("html");

webNode.add(htmlNode);

htmlNode.add(new DefaultMutableTreeNode("웹표준"));

webNode.add(new DefaultMutableTreeNode("css3"));

frameworkNode = new DefaultMutableTreeNode("framework");

node.add(frameworkNode);

frameworkNode.add(new DefaultMutableTreeNode("spring"));

frameworkNode.add(new DefaultMutableTreeNode("mybatis"));

tree = new JTree(node);

add(tree, "Center");

add(lbl, "South");

setSize(400, 500);

setVisible(true);

//폴더 확장

tree.expandRow(3); //root의 하위 폴더의 번호 - 폴더 확장

tree.addTreeExpansionListener(this);

tree.addTreeSelectionListener(this);

}

//오버라이딩

public void treeExpanded(TreeExpansionEvent tee){

System.out.println("treeEx");

}

public void treeCollapsed(TreeExpansionEvent tee){

System.out.println("treeCol");

}

public void valueChanged(TreeSelectionEvent tse){

TreePath tp = tree.getSelectionPath(); //경로 구하기

StringTokenizer st = new StringTokenizer(tp.toString(), "[,]");

String pathStr = "";

while(st.hasMoreTokens()){

pathStr += st.nextToken().trim() + "/";

}

lbl.setText(pathStr);

}

public static void main(String[] args) {

new JTreeTest();


}


}