заполнить 2-мерный массив JButton различными изображениями - PullRequest
1 голос
/ 26 сентября 2019

Я работаю над маленьким пасхальным яйцом в моей игре, так оно выглядит .Если игрок нажимает на определенную кнопку 5 раз, каждая кнопка, которая не является черной, получает другую картинку.До сих пор мне удавалось сделать так, чтобы это выглядело как это , где каждая кнопка имеет одинаковое изображение.

Код для изображения и изменения изображения каждой кнопки выглядит так:

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 и т. д.

1015 * Как лучше всего заполнить каждую кнопку соответствующим изображением?

1 Ответ

2 голосов
/ 26 сентября 2019

Попробуйте это:

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

...