线程&#34; main&#34;中的例外情况javax.swing.ImageIcon上的java.lang.NullPointerException。<init>(未知来源)</init>

时间:2015-01-17 12:17:00

标签: java exception nullpointerexception

我正在为学校制作一个小程序,但每次运行时我都会收到此错误:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at Creatieve.Opracht.Main.main(Main.java:14)

我编写的langugae是Java,在有人评论之前,这不是计算机科学项目,所以我不能问老师。

这是我写过的代码:

package Creatieve.Opracht;

import java.awt.*;
import javax.swing.*;

public class Main {
static JFrame frame;
static Puzzel puzzel;

public static void main(String[] args){
    frame = new JFrame("CKV Creatieve Oprdacht 2.0");
    frame.setSize(900, 900); //Lengte en breedte van de foto

    puzzel = new Puzzel(new ImageIcon(Main.class.getResource("/image.png")).getImage());
    frame.add(puzzel);

    frame.setVisible(true);


 }
}

还有这个:

package Creatieve.Opracht;

import java.awt.*;
import javax.swing.*;

public class Puzzel extends JPanel{
Onderdeel[] onderdelen;
Image img;

public Puzzel(Image img){
    this.img = img;
    onderdelen = new Onderdeel[9];
    int onderdeelGrootte = img.getWidth(null)/3;
    for(int i = 0; i != onderdelen.length; i++){
        onderdelen[i] = new Onderdeel(this, i, onderdeelGrootte);
    }
}

public void paint(Graphics g){
    super.paint(g);
    for (int i = 0; i != onderdelen.length; i++){
        onderdelen[i].paint(g);
    }
 }
}

如果你们中的一个人能告诉我如何解决这个问题,那真是太棒了。

提前谢谢!

3 个答案:

答案 0 :(得分:1)

当您访问图像时,代码中的此行出现异常,
new ImageIcon(Main.class.getResource("/image.png")).getImage()

您必须检查此位置是否有/image.png图像,如果可能,请使用文件夹的限定路径名来解决问题。

答案 1 :(得分:1)

资源文件/image.png不存在。所以Main.class.getResource("/image.png")返回null。因此,使用null创建ImageIcon对象时会生成NullPointerException

答案 2 :(得分:0)

解决这个问题..... 只需将图像复制到/ your_Drive_in_which_workspace_folder_is_present / workspace / projectname / bin / projectname /

现在这句话应该是这样的:

Icon IconObject = new ImageIcon(getClass()。getResource(&#34; Image_name.png&#34;));