В рамках упражнения я хотел бы создать программу, отображающую сетку 9x9 из JButtons. Когда я нажимаю на кнопку, я бы хотел, чтобы эта кнопка изменилась каким-то образом, например, изначально она отображает «o», но когда вы нажимаете на нее, она отображает «x», или, может быть, меняет цвета и т. Д. , а остальные кнопки остаются неизменными.Java - Создание сетки кнопок с использованием массива 2d
Однако я не уверен, как это сделать. Я создал 2D-массив JButtons и поместил их в панель 9 GridLayout 9x9. Я также устанавливаю ActionListener для каждого из них. Проблема в том, что я не знаю, как изменить цвет или текст только одной кнопки. Вот короткая версия моей программы, в которой отображаются только соответствующие части.
private JButton[][] t = new JButton[9][9]; //Declared much earlier in the program, right after the class declaration.
public void buildTile()
{
panelc.setLayout(new GridLayout(9, 9));
for(int r = 0; r < 9; r++)
{
for(int c = 0; c < 9; c++)
{
t[r][c] = new JButton("O");
t[r][c].setBackground(Color.BLACK);
t[r][c].setForeground(Color.WHITE);
t[r][c].addActionListener(new TileListener());
panelc.add(t[r][c]);
}
}
}
private class TileListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//Some code to change a specific button
}
}
Как я могу указать, какую кнопку выполнить какое-то эстетическое изменение?
ActionEvent # getSource? – MadProgrammer