Exception in thread "main" java.lang.NullPointerException
at MyJFrame.addTreeNode(MySelfJTree.java:39)
at MyJFrame.addTreeNode(MySelfJTree.java:43)
at MyJFrame.<init>(MySelfJTree.java:29)
at MySelfJTree.main(MySelfJTree.java:13)上面Exception如何解决,源码如下:import java.awt.BorderLayout;
import java.io.File;import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
public class MySelfJTree {
public static void main(String[]args){
MyJFrame frame=new MyJFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}class MyJFrame extends JFrame{
public MyJFrame(){
setTitle("mytree");
setSize(900,500);
DefaultMutableTreeNode root=new DefaultMutableTreeNode("Rong");
File[]files=File.listRoots();
for(int i=0;i<files.length;i++){
DefaultMutableTreeNode disk=new DefaultMutableTreeNode(files[i].getName().toString());
root.add(disk);
if(files[i].isDirectory()){
addTreeNode(disk,files[i]);
}
}
DefaultTreeModel treeModel=new DefaultTreeModel(root);
JTree mytree=new JTree(treeModel);
add(new JScrollPane(mytree),BorderLayout.WEST);
}
public void addTreeNode(DefaultMutableTreeNode treeNode,File file){
File[]files=file.listFiles();
for(File fil:file.listFiles()){
if(fil.isDirectory()||fil.getName().toString().toLowerCase().matches(".+\\.(jpg|gif|jpeg|bmp|png)")){
DefaultMutableTreeNode childNode=new DefaultMutableTreeNode(fil.getName());
treeNode.add(childNode);
addTreeNode(childNode,fil); }
}
}
}
at MyJFrame.addTreeNode(MySelfJTree.java:39)
at MyJFrame.addTreeNode(MySelfJTree.java:43)
at MyJFrame.<init>(MySelfJTree.java:29)
at MySelfJTree.main(MySelfJTree.java:13)上面Exception如何解决,源码如下:import java.awt.BorderLayout;
import java.io.File;import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
public class MySelfJTree {
public static void main(String[]args){
MyJFrame frame=new MyJFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}class MyJFrame extends JFrame{
public MyJFrame(){
setTitle("mytree");
setSize(900,500);
DefaultMutableTreeNode root=new DefaultMutableTreeNode("Rong");
File[]files=File.listRoots();
for(int i=0;i<files.length;i++){
DefaultMutableTreeNode disk=new DefaultMutableTreeNode(files[i].getName().toString());
root.add(disk);
if(files[i].isDirectory()){
addTreeNode(disk,files[i]);
}
}
DefaultTreeModel treeModel=new DefaultTreeModel(root);
JTree mytree=new JTree(treeModel);
add(new JScrollPane(mytree),BorderLayout.WEST);
}
public void addTreeNode(DefaultMutableTreeNode treeNode,File file){
File[]files=file.listFiles();
for(File fil:file.listFiles()){
if(fil.isDirectory()||fil.getName().toString().toLowerCase().matches(".+\\.(jpg|gif|jpeg|bmp|png)")){
DefaultMutableTreeNode childNode=new DefaultMutableTreeNode(fil.getName());
treeNode.add(childNode);
addTreeNode(childNode,fil); }
}
}
}
解决方案 »
- 帮忙看看A选项是不是正确啊!!!
- 如何真正判断文件的格式呢?
- 求大哥们谁有thinking in java中文版 第四版练习答案
- 想做一个类似聊天的工具,设计征求阶段
- 根目录下有一个类,该类没有用到package.子目录下的类该如何将根目录下的类import呢?
- 求java计算八字的程序
- 想做一个鼠标拖动控件的效果,应该怎么做。
- KeyboardInput和FileInput这两个类在哪?
- 请问Java中的二维数组声明问题
- BufferedReader使用readLine()方法返回一个奇葩的null值,麻烦指教。
- 请问JAVA怎么监听系统右键菜单的单击事件。。
- 内部类继承时,父类构造函数的调用
files返回null.
再执行
for(File fil:file.listFiles())
就报那串错误,(空指针异常).如果检测这种情况,跳过的话,就不出现了. (或许有违楼主的意愿,仅仅供参考.)public void addTreeNode(DefaultMutableTreeNode treeNode,File file){
File[]files=file.listFiles();
if(files!=null) //加一检测.
{for(File fil:file.listFiles()){
if(fil.isDirectory()||fil.getName().toString().toLowerCase().matches(".+\\.(jpg|gif|jpeg|bmp|png)")){
DefaultMutableTreeNode childNode=new DefaultMutableTreeNode(fil.getName());
treeNode.add(childNode);
addTreeNode(childNode,fil);}
}
} //end if(files!=null)
}