import javax.swing.*;
import java.io.*;import javax.swing.tree.*;
public class FileTree extends JFrame{

/**
sxsexe
 */
private static final long serialVersionUID = 2787659786140886807L;
private JTree fileTree;
public static void main(String[] args){
new FileTree();
}

public FileTree(){

super("hello");

File[] files=File.listRoots();//获取各个根目录
DefaultMutableTreeNode root=new DefaultMutableTreeNode("我的电脑",true);
DefaultMutableTreeNode cPan=new DefaultMutableTreeNode(files[0].getAbsolutePath());
DefaultMutableTreeNode dPan=new DefaultMutableTreeNode(files[1].getAbsolutePath());
    root.add(cPan);
    root.add(dPan);
    showFile(files[0]);
    showFile(files[1]);
    fileTree=new JTree(root);
add(fileTree);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
}

public void showFile(File file){

if (file==null)return;

File[] list=file.listFiles();
DefaultMutableTreeNode Root=new DefaultMutableTreeNode(file.getAbsolutePath());
System.out.println(list.length);
for(int i = 0;i<list.length;i++)
{
   if(list[i].isDirectory()){

DefaultMutableTreeNode child=new DefaultMutableTreeNode(list[i].getName());
Root.add(child);
showFile(list[i]);
}
   else continue;
//System.out.println(list[i].getName());
}


}
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主截止到2008-06-18 11:05:09的汇总数据:
    发帖数:3
    结贴数:0
    结贴率: 0.00%
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    我也出现了你一样的情况,,空指针异常,,,我是用的Eclipse的GUI设计器做的吧,,不知道什么原因,
      

  3.   


    import java.io.File;import javax.swing.JFrame;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;public class FileTree extends JFrame
    {
        /**
         * sxsexe
         */
        private static final long serialVersionUID = 2787659786140886807L;    private JTree fileTree;    public static void main(String[] args)
        {
            new FileTree();
        }    public FileTree()
        {
            super("hello");        File[] files = File.listRoots();// 获取各个根目录
            DefaultMutableTreeNode root = new DefaultMutableTreeNode("我的电脑", true);
            DefaultMutableTreeNode cPan = new DefaultMutableTreeNode(files[0].getAbsolutePath());
            DefaultMutableTreeNode dPan = new DefaultMutableTreeNode(files[1].getAbsolutePath());
            root.add(cPan);
            root.add(dPan);
            showFile(files[0], cPan);
            showFile(files[1], dPan);
            fileTree = new JTree(root);
            add(fileTree);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            pack();
            setVisible(true);
        }    public void showFile(File file, DefaultMutableTreeNode node)
        {        if(file == null || file.listFiles() == null)
            {
                return;
            }        File[] list = file.listFiles();
            System.out.println(list.length);
            
            for(int i = 0; i < list.length; i++)
            {
                if(list[i].isDirectory())
                {
                    DefaultMutableTreeNode child = new DefaultMutableTreeNode(list[i].getName());
                    node.add(child);
                    showFile(list[i], child);
                }
            }
        }
    }
      

  4.   

    刚才那个好像有点问题
    import java.io.File;import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;public class FileTree extends JFrame
    {
        private static final long serialVersionUID = 2787659786140886807L;    private JTree tree;
        
        private JScrollPane scPane;    public static void main(String[] args)
        {
            new FileTree();
        }    public FileTree()
        {
            super("FileTree");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            buildTree();
            pack();
            setVisible(true);
        }
        
        public void buildTree()
        {
            File[] files = File.listRoots();
            DefaultMutableTreeNode root = new DefaultMutableTreeNode("我的电脑");
            DefaultMutableTreeNode diskC = new DefaultMutableTreeNode(files[0]);
            DefaultMutableTreeNode diskD = new DefaultMutableTreeNode(files[1]);
            root.add(diskC);
            root.add(diskD);
            showFile(files[0], diskC);
            showFile(files[1], diskD);
            tree = new JTree(root);
            scPane = new JScrollPane(tree);
            add(scPane);
        }    public void showFile(File file, DefaultMutableTreeNode node)
        {
            if(file != null && node != null)
            {
                DefaultMutableTreeNode child;
                File[] list = file.listFiles();            if(list != null)
                {
                    System.out.println(list.length);                for(File tempFile: list)
                    {
                        child = new DefaultMutableTreeNode(tempFile.getName());
                        node.add(child);
                        
                        if(tempFile.isDirectory())
                        {
                            showFile(tempFile, child);
                        }
                    }
                }
            }
        }
    }
      

  5.   

    Exception in thread "main" java.lang.NullPointerException
    at FileTree.showFile(FileTree.java:42)
    at FileTree.showFile(FileTree.java:48)
    at FileTree.<init>(FileTree.java:26)
    at FileTree.main(FileTree.java:13)这个就是异常部分
      

  6.   

    我把你的代码COPY下来跑出来了
    为什么你的会报错?
      

  7.   

    你的异常是没有找到主程序的入口。
    1.你编译运行的问题。
    2.运行要在带main 方法的入口里执行我运行的没有问题。