gpt4 book ai didi

java - 将图像加载到数组中

转载 作者:行者123 更新时间:2023-12-01 09:10:00 25 4
gpt4 key购买 nike

我正在尝试将多个图像加载到数组中。但由于某种原因,我在尝试执行实际加载(ImageIO.read())时收到 NullPointerException。我看不出哪里出了问题,可能是因为我过多地摆弄它,所以我对这个错误视而不见。这是尝试加载图像的循环:

for (int i = 0; i <= 1; i++) {
try {
image[i] = ImageIO.read(new File(String.format("TDs/TD%d.png", i)));
bg[i] = ImageIO.read(new File(String.format("BGs/BG%d.png", i)));
} catch (IOException e) {
}
}

我目前只有两个图像可以切换,但我很快就会更改。

绘画发生使用

g2d.drawImage(bg[1], 0, 0, null);

两个变量均由以下内容初始化

Image[] image, bg;

最后但并非最不重要的证据是所有图像实际上都存在

here

感谢您帮助一个愚蠢的人。


编辑:非常感谢您的回答,因为以这种方式初始化数组是有效的!我现在感觉自己像个白痴,因为我查看了所有其他数组初始化,发现它们的初始化方式与您告诉我的方式完全相同...抱歉占用了您的时间!

PS:不需要处理 IOExeptions,因为这些是游戏的纹理 - 它们不会改变,你也不能/不应该改变它们。我会添加一个带有消息的消息框,以防有人决定乱搞。

最佳答案

您需要创建一个新数组。您只需像这样声明数组:

Image[] image;

但是要在数组中存储元素,您必须像这样初始化它:

Image[] image = new Image[2] // value count
<小时/>

对于您的示例,您可以尝试这个

int imageCount = 2;
Image[] image = new Image[imageCount];
for (int i = 0; i < imageCount; i++) {
try {
image[i] = ImageIO.read(new File(String.format("TDs/TD%d.png", i)));
bg[i] = ImageIO.read(new File(String.format("BGs/BG%d.png", i)));
} catch (IOException e) {
}
}
<小时/>

或者作为替代方案,如果您不知道要存储多少个值。您可以使用 ArrayList。就像这样:

ArrayList<Image> images = new ArrayList<>();

//add image
images.add(ImageIO.read(new File(String.format("TDs/TD%d.png", i))));

关于java - 将图像加载到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40975822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com