繁体   English   中英

加载图像时出错 - java.lang.IllegalArgumentException: input == null

[英]Error in loading image - java.lang.IllegalArgumentException: input == null

我尝试使用 Eclipse IDE 在 Java 中为我的游戏项目显示图像:我有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 class 加载图像:

@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 资源管理器: Package 资源管理器

当我尝试运行该程序时,我收到以下错误:

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)

感谢任何帮助!

您可能需要将图像读取代码更改为

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

我假设文件路径是正确的,并且您的 res 目录被正确标记为资源目录。

暂无
暂无

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

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