java - getSubimage 因未知原因抛出 NullPointerException

标签 java

嗯,我第一次尝试制作图形游戏,但是:

BufferedImage tileset = null;
try{
    tileset = ImageIO.read(new File("sets/tiles.png"));
}
catch(IOException e){
    System.out.println(e.toString());
}
MwatRoot.allTiles[0].tile = tileset.getSubimage(0, 0, 32, 32);
MwatRoot.allTiles[1].tile = tileset.getSubimage(0, 32, 32, 32);

这会引发 NullPointerException:

MwatRoot.allTiles[0].tile = tileset.getSubimage(0, 0, 32, 32);
MwatRoot.allTiles[1].tile = tileset.getSubimage(0, 32, 32, 32);

这是所有Tiles:

public static TileClass[] allTiles = new TileClass[2];

和TileClass:

public class TileClass {
    public BufferedImage tile;
    public boolean BlocksMovement;
}

有人可以向我解释为什么会发生这种情况吗?我已经检查过了,tileset 不为空。

最佳答案

public static TileClass[] allTiles = new TileClass[2];

这不能正确初始化数组。

您必须在其后添加以下内容:

allTiles[0] = new TileClass();
allTiles[1] = new TileClass();

关于java - getSubimage 因未知原因抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650318/

相关文章:

java - Protobuf getAllFields() 性能

Java Scanner 打印上一行和下一行

java - 无法使用播放列表项 API 检索视频元数据(例如视频持续时间和流 url)?

java - LuaJava 未满足链接错误

java - 是否可以对 XML jaxb 中的所有元素进行处理

Java Eclipse MySQL语法错误异常

java - 如果 csv 文件为空,如何停止数组越界错误?

java - 分布式java环境下的资源共享

java - 检查与 MultiValueMap 关联的所有集合是否都非空?

java - 从 IntelliJ IDEA 社区上的 Gradle 项目构建 WAR 文件(不包括构建中的资源)