Java 日本形象

Java 日本形象,java,eclipse,image,null,japplet,Java,Eclipse,Image,Null,Japplet,我正试图用JApplet显示图像。我试图加载一个图像,然后绘制它。但是,当我尝试初始化BuffereImage red时,我不断遇到以下错误: java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(ImageIO.java:1362) at Pathfinder.init(Pathfinder.java:15) at sun.applet.AppletPanel.r

我正试图用JApplet显示图像。我试图加载一个图像,然后绘制它。但是,当我尝试初始化BuffereImage red时,我不断遇到以下错误:

java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(ImageIO.java:1362)
    at Pathfinder.init(Pathfinder.java:15)
    at sun.applet.AppletPanel.run(AppletPanel.java:425)
    at java.lang.Thread.run(Thread.java:662)
它最初在一个资源文件夹中,但我得到了相同的错误。我在一个
SwingUtilities.invokeAndWait(new Runnable(){…
)中尝试了它,但它仍然不起作用。有什么问题吗?我的程序如下:

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;

@SuppressWarnings("serial")
public class Pathfinder extends Applet {
    private BufferedImage red;

    @Override
    public void init() {
        try {
            red = ImageIO.read(this.getClass().getResource("red.png"));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    @Override
    public void paint(Graphics g) {
        g.drawImage(red, 0, 0, null);
    }
}

red.png位于我的项目的最高层。

尝试使用red=ImageIO.read(this.getClass().getResource(“/red.png”);而不是.getClass().getResource(…)使用基于类包位置的相对路径…@MadProgrammer,谢谢,但结果相同:(显示Jar的结构。@AndrewThompson它不在Jar中。我只是在eclipse中按play按钮。@AndrewThompson感谢您的反馈。我将停止Java GUI开发,直到我更好地理解Java为止。