如何修复Java中的ArrayIndexOutOfBoundsException?
我得到一个ArrayIndexOutOfBoundsException,但只有当getSubImage函数存在时 这是通过循环获取精灵。我在没有getsubimage的情况下尝试过,也尝试过使用不同的for循环,但没有任何效果 这与我所比较的线程不同,因为我在另一个线程中使用for循环。没有getSubimage,程序运行得很好,for循环也运行得很好。我不知道问题在哪里,也不知道是什么如何修复Java中的ArrayIndexOutOfBoundsException?,java,javax.imageio,Java,Javax.imageio,我得到一个ArrayIndexOutOfBoundsException,但只有当getSubImage函数存在时 这是通过循环获取精灵。我在没有getsubimage的情况下尝试过,也尝试过使用不同的for循环,但没有任何效果 这与我所比较的线程不同,因为我在另一个线程中使用for循环。没有getSubimage,程序运行得很好,for循环也运行得很好。我不知道问题在哪里,也不知道是什么 try { BufferedImage spritesheet = Ima
try {
BufferedImage spritesheet = ImageIO.read(
getClass().getResourceAsStream(
"/Sprites/SpriteSheet.gif"
)
);
sprites = new ArrayList<BufferedImage[]>();
for(int i = 0; i < 6; i++) {
BufferedImage[] bi =
new BufferedImage[i];
for(int j = 0; j < numFrames[i]; j++) {
bi[j] = spritesheet.getSubimage(
i * width,
j* height,
width,
height
);
}
sprites.add(bi);
}
}
catch(Exception e) {
e.printStackTrace();
}
我希望它能通过这个循环得到所有的精灵。实际情况是,它没有获取子映像,只是抛出了一个越界异常。您的程序正在尝试从数组中检索索引不可用的元素。检查第15行是否已经创建了numFrames一些where?。可能您没有使用正确的数组,或者numFrames没有具有该特定索引的元素。尝试运行调试器并查看哪个数组超出索引