MyException - 我的异常网
当前位置:我的异常网» Eclipse » 怎么解决:Exception in thread "main" ja

怎么解决:Exception in thread "main" java.lang.NullPointerException

www.MyException.Cn  网友分享于:2013-11-26  浏览:3524次
如何解决:Exception in thread "main" java.lang.NullPointerException
各位高手,本人新手上路.玩个简单的程序却遇到了个问题.编译时没报错,但是运行就有问题,麻烦大家帮忙看一下.小弟不胜感激!!!
源程序如下:
package swing;

import java.awt.*;
import java.net.*;

import javax.swing.*;

public class MyImageIcon extends JFrame {
public MyImageIcon() {
Container container = getContentPane();
// 创建一个标签
JLabel jl = new JLabel("这是一个JFrame窗体", JLabel.CENTER);
// 获取图片所在的URL
URL url = MyImageIcon.class.getResource("imageButton.jpg");
Icon icon = new ImageIcon(url); // 实例化Icon对象
jl.setIcon(icon); // 为标签设置图片
// 设置文字放置在标签中间
jl.setHorizontalAlignment(SwingConstants.CENTER);
jl.setOpaque(true); // 设置标签为不透明状态
container.add(jl); // 将标签添加到容器中
setSize(250, 100); // 设置窗体大小
setVisible(true); // 使窗体可见
// 设置窗体关闭模式
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}

public static void main(String args[]) {
new MyImageIcon(); // 实例化MyImageIcon对象
}
}

运行后出现的报错的问题是:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
at swing.MyImageIcon.<init>(MyImageIcon.java:15)
at swing.MyImageIcon.main(MyImageIcon.java:28)


------解决方案--------------------
你检查一下跟MyImageIcon.java同目录下有没有imageButton.jpg这个文件,空指针的异常其实就是没有找到这个名称的图片

如果没有,你自己找个小一些的jpg按钮图片放在跟MyImageIcon.java同目录下,命名为imageButton.jpg然后重新执行程序就正常了
------解决方案--------------------
空指针了。 没又找到加载的图片
------解决方案--------------------
可能是imageButton.jpg的文件名称多了一个空格或者什么的,你可以加我QQ我远程看你电脑的情况,具体号码你留个email我给你发过去
------解决方案--------------------

这种做法并不是很好,原来的写法用class.getResource的方法是最推荐的

如果你直接url="imageButton.jpg"替换成功,那么我怀疑imageButton.jpg在工程根目录下,而不是跟这个

java文件同目录,即便你说有个jpg跟java文件同目录,还是那句话文件名检查是否对应,是否多个空格啥的

探讨

谢谢楼上!现在可以了.
我把URL url = MyImageIcon.class.getResource("imageButton.jpg");这行注释起来,然后直接把"imageButton.jpg"替换掉下面那行的url就可以了,但不知道是为什么?
Icon icon = new ImageIcon(url); // 实例化Icon对象

------解决方案--------------------
空指针了。 没又找到加载的图片
------解决方案--------------------
楼主的代码没有问题啊,只要那个图片跟你的.java文件在同一个目录下就可以了,你加上"/"它才会从根目下找啊(URL url = MyImageIcon.class.getResource("/swing/imageButton.jpg");)

图片的名称(名字+扩展名)尽可能拷贝,不要手写,以免写错

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有