【问题标题】:Exception in thread "main" java.lang.NullPointerException at javax.swing.ImageIcon.<init>(Unknown Source)javax.swing.ImageIcon.<init> 处的线程“main”java.lang.NullPointerException 中的异常(未知来源)
【发布时间】:2015-01-17 12:17:00
【问题描述】:

我正在为学校开发一个小程序,但是每当我运行它时都会出现此错误:

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

我编码的语言是 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);
    }
 }
}

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

提前谢谢你!

【问题讨论】:

  • 没有/image.png资源
  • 很简单:在classpath的任何目录或jar中都找不到image.png资源。
  • 谢谢,问题已解决!

标签: java exception nullpointerexception


【解决方案1】:

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

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

【讨论】:

  • 我没有得到,你想问什么
  • 谢谢,我已经解决了这个问题!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    现在这个语句应该是这样的:

    Icon IconObject=new ImageIcon(getClass().getResource("Image_name.png"));

    【讨论】:

      猜你喜欢
      • 2016-07-30
      • 2023-03-30
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 2023-03-10
      • 2013-04-30
      • 1970-01-01
      相关资源
      最近更新 更多