Обновление текста кнопки панели GridLayout во время выполнения - PullRequest
0 голосов
/ 21 ноября 2010

Я работаю над графическим интерфейсом, используя качели. У меня есть основной класс, откуда я загружаю две отдельные панели изначально. Моя первая панель имеет textField и кнопку и вторую панель, которая представляет собой сетку, встроенную в панель, например, 9 кнопок, пронумерованных как A1, A2, A3, ... A9. Итак, как я уже сказал, оба они изначально загружены из моего основного класса.

Теперь после выполнения, как я вижу обе мои отдельные панели. Теперь из Панели 1 (которая имеет Текстовое поле и кнопку) я поместил туда некоторый текст, например, номер A1. То, что я хочу, это цвет кнопки на второй панели должен измениться.

Что я сделал, я добавил ActionListiner к своей кнопке на firstPanel и создал новый экземпляр второй Panel. Но так панель 2 дублирует. Так как я продолжаю добавлять номер в textField, я вижу новую панель. Как я могу просто обновить существующий цвет кнопки второй панели во время выполнения?

1 Ответ

1 голос
/ 21 ноября 2010

Полагаю, у вас есть что-то вроде

JPanel panel2 = new JPanel(new GridLayout(3,3));
JButton[] buttons = new JButton[9];

// instantiate buttons and add them to grid panel
for (int i = 0; i < 9; ++i) {
  buttons[i] = new JButton("A"+(i+1));
  panel2.add(buttons[i]);
}

....

void actionPerformed(ActionEvent e) {
  String text = ((JTextField)e.getSource()).getText();

  //simplified, I assume input is always correct and in the form of "An" where n is the digit
  // convert the string to an index to reference the correct button in array
  int which = Integer.parseInt(text.substring(1,2));

  buttons[which].setBackground(Color.RED);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...