请帮我看看下面的代码为什么报错?运行后下面提示:
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();
}
}
你代码里面的这句:
image.class.getResource("image.jpg");里面是相对于你创建的image类的,路径是相对于image类文件的,所以要把图片文件和image.classs类文件放在一起。
几年过去了。想必问这个问题的人现在早就对java很熟悉了,回答下给以后搜索到这个问题的人把吧
还是不行……
追答不是这样放的,肯定不是跟java文件一起,我记得是java文件的上层目录。也就是跟java所在包同目录。实在不行你就写图片的全路径,就写全路径。这些都是小问题,自己多测试,有点探索精神,不要遇见一点问题就来问。
本回答被网友采纳放进去了还是不行……
追答你用的是Eclipse还是直接用的dos,你确定你把名为“image.jpg”的文件与你的image.java文件放在一起??还有你的那张格式为.jpg的图片要原本就是.jpg格式的,而是不从其他格式强行转的。