正在从res文件夹加载图像



Iam编码游戏是我作业的一部分,我正试图从res文件夹加载图像,但我得到了NullPointerException:

```Exception in thread "Thread-0" java.lang.IllegalArgumentException: input == null!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1400)
at prg_hra/esrever.BufferedImageLoader.loadImage(BufferedImageLoader.java:15)
at prg_hra/esrever.Hra.init(Hra.java:38)
at prg_hra/esrever.Hra.run(Hra.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)```

res文件夹已经在Java构建路径中,我99%确信我的路径是正确的。我得到了BufferedImageLoader类:

public class BufferedImageLoader {
private BufferedImage image;
public BufferedImage loadImage(String path) {
try {
image = ImageIO.read(getClass().getResource(path));
} catch (IOException e) {
e.printStackTrace();
}
return image;
}

我正在游戏类的inti-metode中使用它:

private void init() {
WIDTH=getWidth();
HEIGHT=getHeight();
BufferedImageLoader loader = new BufferedImageLoader();
level = loader.loadImage("/res/level.png");     
handler = new Handler();
kam=new Kamera(0,0);
handler.addObjekt(new Hrac(100, 100, handler, ObjektID.Hrac));
handler.createLevel();
this.addKeyListener(new KeyInput(handler));
}

我看过其他人的一些类似问题,但他们大多只是走错了路。。

编辑:我也试过level = loader.loadImage("level.png");level = loader.loadImage("/level.png");两者都不起作用。

尝试level = loader.loadImage("level.png");而不是level = loader.loadImage("/res/level.png");

若您正在尝试获取资源,则不需要编写资源目录。

最新更新