Ошибка при загрузке изображения - java .lang.IllegalArgumentException: input == null - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь отобразить изображение для моего игрового проекта в Java, используя Eclipse IDE: У меня есть ImageReader:

public BufferedImage loadImage(String path) {
    try {
        BufferedImage image = ImageIO.read(getClass().getResource(path));
        return image;
    } catch(IOException e) {
        e.printStackTrace();
        System.exit(-1);
    }
    return null;
}

Я загружаю изображение из класса GameWindow:

@Override
public void paint(Graphics g) {
    super.paint(g);

    Graphics2D g2D = (Graphics2D) g;

    g2D.drawImage(ImageReader.getInstance().loadImage("/x.png"), 0, 0, Game.FIELD_HEIGHT, Game.FIELD_WIDTH, null);
}

Это мой Package Explorer: Package Explorer

Когда я пытаюсь запустить программу, я получаю следующую ошибку:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at game.util.ImageReader.loadImage(ImageReader.java:31)
at game.util.ImageReader.<init>(ImageReader.java:18)
at game.util.ImageReader.getInstance(ImageReader.java:24)
at game.gui.GameWindow.paint(GameWindow.java:31)

Спасибо за любую помощь!

1 Ответ

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

Возможно, вам придется изменить код чтения изображения как

public BufferedImage loadImage(String path) {
try {
    BufferedImage image = ImageIO.read( new FileInputStream( new File( path ) ) );
    return image;
} catch(IOException e) {
    e.printStackTrace();
    System.exit(-1);
}
return null;
}

Я предполагаю, что для filepath указан правильный путь, и ваш каталог res правильно помечен как каталог ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...