Exception in thread "Thread-2" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at com.game.src.gfx.BufferedImageLoader.loadImage(BufferedImageLoader.java:15)
at com.game.src.main.Game.init(Game.java:43)
at com.game.src.main.Game.run(Game.java:81)
at java.lang.Thread.run(Unknown Source)


这是我的全部错误,我有一个非常基本但正在运行的游戏,该游戏是我在Eclipse中创建的。我尝试在JGrasp中打开Game.java文件以查看是否可以运行它,因为这是我们在学校使用的程序。当我尝试在JGrasp中运行时,它不起作用,因此我再次尝试在eclipse中运行它,出现了此错误。这是我的Game.java的一部分,它调用BufferedImageLoader,这是错误的出处。

public void init() throws IOException{
    requestFocus();
    BufferedImageLoader loader = new BufferedImageLoader();

    spriteSheet = loader.loadImage("SpriteSheet.png");

    SpriteSheet ss = new SpriteSheet(spriteSheet);
    im = new ImageManager(ss);

    p = new Player(5 * TILE, 10 * TILE, im, im.playeru);

    this.addKeyListener(p);
    BufferedImage limage = loader.loadImage("/level1.png");
    l1 = new Level(limage);


}


我的游戏类创建了一个名为loader的新BufferedImageLoader实例,并将构造函数设置为(“ SpriteSheet.png”),这是我在Eclipse中BufferedImageLoader类的构造函数。

BufferedImageLoader类如下

package com.game.src.gfx;

import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;

public class BufferedImageLoader {

private BufferedImage image;


public BufferedImage loadImage(String path) throws IOException{

    image = ImageIO.read(getClass().getResource(path));
    return image;


}


}


我不知道为什么它停止工作,我搜索了相当数量的东西,如果您能帮助我,将不胜感激!
如果您需要更多代码或信息,请随时询问,
谢谢!

最佳答案

您的图像文件(“ SpriteSheet.png”)应该与BufferedImageLoader类放在同一程序包中。

查看有关如何指定路径的文档-public URL getResource(String name)

09-28 10:17