简体   繁体   English

从 res 文件夹加载图像

[英]Loading image from res folder

Iam coding game as part of my homework and I'm trying to load a image from res folder but I'm getting NullPointerException:我将编码游戏作为我作业的一部分,我正在尝试从 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)```

The res folder is already in Java Build Path and I'm 99% sure that I'm putting in the right path. res 文件夹已经在Java 构建路径中,我 99% 确定我输入了正确的路径。 I got BufferedImageLoader Class:我得到了 BufferedImageLoader Class:

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;
    }

and I'm using it in inti metode in game class:我在游戏 class 的 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));
}

I've looked at some similar problems of other people, but they mostly just used wrong path..我看过其他人的一些类似问题,但他们大多只是使用了错误的路径..

EDIT: I also tried level = loader.loadImage("level.png");编辑:我也试过level = loader.loadImage("level.png"); and level = loader.loadImage("/level.png");level = loader.loadImage("/level.png"); neither worked.都没有工作。

Try that level = loader.loadImage("level.png");试试那个level = loader.loadImage("level.png"); instead of level = loader.loadImage("/res/level.png");而不是level = loader.loadImage("/res/level.png");

If you are trying get resource you don't need to write resources directory.如果您正在尝试获取资源,则无需编写资源目录。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM