JAVA进行式
让我们把JAVA进行到底!
posts - 13,comments - 21,trackbacks - 0

        哇,想不到这么晚了,不管了,先写完了再睡吧,不记下来,明天忘了怎么办?
        晚上,把计算器修改完毕,总算有个样子,就想着发表出去,好让大家给看看有什么毛病,那么就得打包成jar文件发出去罗,今天课堂上才讲了怎么打包,我试试……
        结果,遇到一点小麻烦,计算器窗体上的图标所用的资源文件kcalc.gif应该搁哪儿里,我怎么在程序中调用哩?
        刚开始写程序的时候我是用的:
        this.setIconImage(Toolkit.getDefaultToolkit().createImage("kcalc.gif"));
        在未打包前,运行没问题,可是打包成jar文件后,将这个jar文件放别处运行就看不到窗体图标了,这是怎么回事?
        记得上机时有同学问老师的,嗯,赶紧联系同学问问,然后依样画葫芦,就写成了这样:
         this.setIconImage(Toolkit.getDefaultToolkit().createImage(Calculator.class.getResource("jb/kcalc.gif")));
         结果编译没问题,运行时却报“空指针异常”,这是怎么回事?怎么在他那里行得通的代码,在我这里行不通了哩?
         查DOC文档,终于明白了,原来Calculator.class.getResource()是利用反射机制,返回当前调用类中所指文件的URL地址,我给的参数是“jb/kcalc.gif”,而实际上当前类的URL路径已经是..jb了,再去找“jb/kcalc.gif”当然找不到,返回为null,所以会报“空指针异常”。那么,现在我改为:
         this.setIconImage(Toolkit.getDefaultToolkit().createImage(Calculator.class.getResource("kcalc.gif")));
         打包,运行,嘿嘿,果然如此!
         看来方法不能生搬硬套,得弄明白了,才能做得明白呀!

posted on 2005-11-11 02:18 水秀清灵 阅读(369) 评论(0)  编辑  收藏 所属分类: 心情晴雨表