//------------------------------------------------------------
// 编译下边的类,并运行无需任何参数
//-----------------------------------------------------------
package com.swing.tree;
import java.io.*;
import java.util.*;
import javax.swing.tree.*;
public class file_path_obj
{
private string dir_tree="";
private file temp;
defaultmutabletreenode root=null;
public defaultmutabletreenode getpath_obj()
{
if(this.root==null)
return new defaultmutabletreenode("null node");
return this.root;
}
public file_path_obj(string path)
{
try{
root= this.set(path);
}catch(exception e)
{
system.out.println("tree error:+++++++++++++++++++++++++++++++++");
e.printstacktrace();
}}
public defaultmutabletreenode set(string dir) throws exception //第归遍历文件甲
{
file[] temp_list = null;
if(new file(dir).exists()==false)
throw new exception("file name is null");
defaultmutabletreenode tempnode;
temp = new file(dir);
if(temp.isfile())
{
return new defaultmutabletreenode(temp.getabsolutepath());
}
temp_list = temp.listfiles();
tempnode = new defaultmutabletreenode(temp.getabsolutepath());
//设置上级菜单的名字
if(temp_list.length==0) return new defaultmutabletreenode(temp.getabsolutepath());
for(int i=0;i<temp_list.length;i++)
{
if(temp_list[i].isdirectory())
{
system.out.println("the file is:"+temp_list[i].getabsolutepath());
tempnode.add(this.set(temp_list[i].getabsolutepath()));
}
else
tempnode.add(new defaultmutabletreenode(temp_list[i].getabsolutepath()));
}
return tempnode;
}
}
//------------------------------------------------------------
// 编译下边的类,并运行无需任何参数
//-----------------------------------------------------------
package com.tree;
import java.io.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;
import com.swing.tree.*;
/** example tree built out of defaultmutabletreenodes.
* ycj
*/
public class pathtree extends jframe {
public static void main(string[] args) {
try
{
bufferedreader bin = null;
bin = new java.io.bufferedreader(new inputstreamreader(system.in));
string path="";
file temp = null;
system.out.print("输入要显示的文件路径");
while(bin!=null)
{
path = bin.readline();
if(path==null)
{
system.out.println("请输入合法的文件路径");
continue;
}
temp = new file(path);
if(temp.exists()==false||temp.isfile())
system.out.println("请输入正确的文件路径");
else
{new pathtree(path);
break;
}
}
}catch(exception e)
{ e.printstacktrace(); }
}
public pathtree(string path)
{
super("creating a simple jtree");
windowutilities.setnativelookandfeel();//set the uimanager
addwindowlistener(new exitlistener());
container content = getcontentpane();
file_path_obj obj = new file_path_obj(path);
system.out.println(obj.getpath_obj());
jtree tree = new jtree(obj.getpath_obj());//make a tree
cursor cor = new cursor(cursor.hand_cursor);
tree.setcursor(cor);
content.setlayout(new flowlayout());
jpanel jp1 = new jpanel(new borderlayout());
jpanel jp2 = new jpanel(new borderlayout());
content.add(jp1);
content.add(jp2);
content.add(new jscrollpane(tree), borderlayout.center);
setsize(275, 500);
setvisible(true);
this.pack();
}
}
闽公网安备 35060202000074号