Замена имени переменной в цикле цикла - PullRequest
0 голосов
/ 07 мая 2019

Как видно из заголовка, мне нужно заменить часть имени переменной на число итераций цикла.

В моем коде переменные представляют собой сетку кнопок на Swing, идущую от a1до с3.Я должен перекрасить все кнопки в зависимости от массива p1grid [].Я не могу (насколько мне известно) поместить их в собственный массив, поскольку они являются кнопками.Вот мой код:

for (int i = 1; i < 4; i++) {
    if (p1grid[i - 1].equals("empty"))
        ("a" + i).setBackground(Color.LIGHT_GRAY);
    else
        ("a" + i).setBackground(Color.RED);
}

1 Ответ

1 голос
/ 07 мая 2019

Ваш текущий код не будет компилироваться, потому что ("a" + i) является строкой, у которой нет метода setBackground ().

Предполагается, что класс для кнопок - Button. Таким образом, вы можете сделать что-то вроде:

   List<Button> buttons = new ArrayList<Button>;
   buttons.add(a1);buttons.add(a2);...

Затем измените фон, используя:

for (int i = 1; i < 4; i++) {
    if (p1grid[i - 1].equals("empty"))
        buttons.get(i-1).setBackground(Color.LIGHT_GRAY);
    else
         buttons.get(i-1)..setBackground(Color.RED);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...