黑马程序员技术交流社区

标题: 兄弟们帮我看看 我的代码哪里错了,编译通过但是运行报? [打印本页]

作者: 目标    时间: 2014-3-3 14:09
标题: 兄弟们帮我看看 我的代码哪里错了,编译通过但是运行报?
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class AwtFileList
{
        private Frame f;
        private Button b;
        private TextField tf;
        private TextArea ta;
        private Label la;
        private Dialog d;
        private Button b1;
        AwtFileList()
        {
                init();
        }

        public void init()
        {
                f= new Frame("列出目录下清单");
                f.setLayout(new FlowLayout());
                b=new Button("转到");
                tf=new TextField(41);
                ta=new TextArea(20,40);
                f.setBounds(200,200,400,400);
                f.add(tf);
                f.add(b);
                f.add(ta);
                addEvent();
                f.setVisible(true);

        }

        public void addEvent()
        {
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent w)
                        {
                                System.exit(0);
                        }
                });

                d.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent w)
                        {
                                d.setVisible(false);
                        }
                               
                });
                                       
                       
               

                b1.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent a)
                        {
                                d.setVisible(false);
                        }
                });


                b.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent a)
                        {
                               
                                String dir = tf.getText();
                                //tf.setText("");
                                File fi = new File(dir);
                                if(fi.exists() && fi.isDirectory())
                                {
                                        ta.setText("");//清空
                                       
                                       
                                                String[] list = fi.list();
                                                for(String l : list)
                                                {
                                                        ta.append(l+"\r\n");
                                                }
                                       
                                       
                                       
                                       
                                }
                       
                                else
                                {
                                        //f代表该对话框与那个窗体相关联
                                         d =new Dialog(f,"错误提示",true);
                                         b1 = new Button("确定");
                                         String s = "请检查您输入的目录"+dir+"有误";
                                         la = new Label(s);
                                        d.setBounds(200,200,200,200);
                                        d.setLayout(new FlowLayout());
                                        d.add(la);
                                        d.add(b1);
                                        d.setVisible(true);
       
                                }
                        }
                });

                       
        }
        public static void main(String[] args)
        {
                new        AwtFileList();
        }
}


捕获.PNG (8.68 KB, 下载次数: 5)

报错提示

报错提示

作者: 黄陂酷歌    时间: 2014-3-3 14:17
空指针异常,你的new  awtfilelist()有问题,怎么能够直接你要new一个什么?谁指向你new的空间?
作者: 目标    时间: 2014-3-3 14:22
黄陂酷歌 发表于 2014-3-3 14:17
空指针异常,你的new  awtfilelist()有问题,怎么能够直接你要new一个什么?谁指向你new的空间? ...

这是匿名对象
作者: 薛旻    时间: 2014-3-3 15:27
addEvent()函数里有问题
  1. d.addWindowListener(new WindowAdapter()
  2.                 {
  3.                         public void windowClosing(WindowEvent w)
  4.                         {
  5.                                 d.setVisible(false);
  6.                         }
  7.                                 
  8.                 });
复制代码

你的d还没有指向你创建实例,因为你根本就没创建Dialog实例,就调用方法报错
  1. b1.addActionListener(new ActionListener()
  2.                 {
  3.                         public void actionPerformed(ActionEvent a)
  4.                         {
  5.                                 d.setVisible(false);
  6.                         }
  7.                 });
复制代码

同样的问题b1没有创建实例Button
作者: Softlmis    时间: 2014-3-3 17:00
楼上正解。楼楼上改了怎么改的都不解释。。
作者: 目标    时间: 2014-3-3 20:02
zengming13 发表于 2014-3-3 14:41
帮你改好了

真是 太感谢了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2