各位高手,本人新手上路.玩个简单的程序却遇到了个问题.编译时没报错,但是运行就有问题,麻烦大家帮忙看一下.小弟不胜感激!!!
源程序如下:
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文件同目录,还是那句话文件名检查是否对应,是否多个空格啥的
------解决方案--------------------
空指针了。 没又找到加载的图片
------解决方案--------------------
楼主的代码没有问题啊,只要那个图片跟你的.java文件在同一个目录下就可以了,你加上"/"它才会从根目下找啊(URL url = MyImageIcon.class.getResource("/swing/imageButton.jpg");)
图片的名称(名字+扩展名)尽可能拷贝,不要手写,以免写错