Загрузка изображения из папки res - PullRequest
0 голосов
/ 10 апреля 2020

Игра в кодирование 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 Build Path и я на 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 в игровом классе:

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"); ни работал.

1 Ответ

0 голосов
/ 10 апреля 2020

Попробуйте это level = loader.loadImage("level.png"); вместо level = loader.loadImage("/res/level.png");

Если вы пытаетесь получить ресурс, вам не нужно писать каталог ресурсов.

...