我正在游戏中制作一个小的复活节彩蛋,this is how it looks。如果玩家单击特定的按钮5次,则不是黑色的每个按钮都会显示不同的图片。到目前为止,我设法使它看起来像this,其中每个按钮都有相同的图片。
图像和更改每个按钮的图像的代码是这样:
BufferedImage img = ImageIO.read(new File("kronk/18.png"));
for (int i = 0; i < buttons.length; i++) { //Goes one time through the complete Array
for (int j = 0; j < buttons[i].length; j++) {
if(buttons[i][j].getBackground() != Color.black) {
buttons[i][j].setText("");
buttons[i][j].setIcon(new ImageIcon(img));
}
}
}
到目前为止,该代码已被硬编码为始终显示18.png
[图像存储在一个看起来像this的文件夹中,其中1.png出现在按钮1上,2.png出现在2上,等等...
用相应的图像填充每个按钮的最佳方法是什么?
尝试一下:
for (int i = 0; i < buttons.length; i++) { //Goes one time through the complete Array
for (int j = 0; j < buttons[i].length; j++) {
if(buttons[i][j].getBackground() != Color.black) {
BufferedImage img = ImageIO.read(new File("kronk/"+(i*5 + j + 1)+".png"));
buttons[i][j].setText("");
buttons[i][j].setIcon(new ImageIcon(img));
}
}
}
[由于您有一个5x5数组i*5 + j
,因此您的元素计数从0到24。但是由于您的图片枚举以一个开始,因此您必须在末尾添加一个i*5 + j + 1