作为练习的一部分,我想设计一个显示JButtons 9x9网格的程序。当我点击一个按钮时,我希望该按钮以某种方式改变,比如原来它显示一个'o',但当你点击它时,它会显示一个'x',或者它可能会改变颜色等。 ,而其他按钮保持不变。
但是,我不知道该怎么做。我创建了一个JButtons的2D数组,并将它们放在9x9 GridLayout面板中。我还为每一个设置了一个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
}
}
我如何指定执行某种美学改变的按钮?
答案 0 :(得分:-2)
在actionlistener中,e.getSource()将返回您单击的按钮