java中的使用图片图标

请帮我看看下面的代码为什么报错?运行后下面提示:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
at image.<init>(image.java:9)
at image.main(image.java:21)

代码是这样的:
import java.awt.*;
import javax.swing.*;
import java.net.URL;
public class image extends JFrame{
public image(){
Container c=getContentPane();
JLabel jl=new JLabel("带图片的按钮测试窗体",JLabel.CENTER);
URL url=image.class.getResource("image.jpg");
Icon icon=new ImageIcon(url);
jl.setIcon(icon);
jl.setOpaque(true);
c.add(jl);
this.setSize(300,400);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

}

public static void main(String[] args) {
// TODO Auto-generated method stub
new image();
}

}

如何复制到包里啊?我已经在电脑把图片拷到java文件一起了,但在Eclipse的或侧目录树中就是显示不出来。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-03-14

你代码里面的这句:

image.class.getResource("image.jpg");

里面是相对于你创建的image类的,路径是相对于image类文件的,所以要把图片文件和image.classs类文件放在一起。

几年过去了。想必问这个问题的人现在早就对java很熟悉了,回答下给以后搜索到这个问题的人把吧

第2个回答  2011-05-19

把image图片复制到包里就可以运行了

第3个回答  推荐于2018-03-20
把URL url=image.class.getResource("image.jpg");那句去掉吧,直
接声明imageicon就行 Icon icon=new ImageIcon("image.jpg");
注意image.jpg的存放位置追问

还是不行……

追答

不是这样放的,肯定不是跟java文件一起,我记得是java文件的上层目录。也就是跟java所在包同目录。实在不行你就写图片的全路径,就写全路径。这些都是小问题,自己多测试,有点探索精神,不要遇见一点问题就来问。

本回答被网友采纳
第4个回答  2011-05-19
把一张名字为“image.jpg”的图片放在你的源代码所在的文件夹就行。追问

放进去了还是不行……

追答

你用的是Eclipse还是直接用的dos,你确定你把名为“image.jpg”的文件与你的image.java文件放在一起??还有你的那张格式为.jpg的图片要原本就是.jpg格式的,而是不从其他格式强行转的。

相似回答