用不同的图像填充二维JButton数组

问题描述 投票:0回答:1

我正在游戏中制作一个小的复活节彩蛋,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上,等等...

用相应的图像填充每个按钮的最佳方法是什么?

java arrays swing jbutton imageicon
1个回答
0
投票

尝试一下:

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

© www.soinside.com 2019 - 2024. All rights reserved.