Java - 使用2d数组创建按钮网格

时间:2016-04-21 20:02:01

标签: java arrays swing button actionlistener

作为练习的一部分,我想设计一个显示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
    }
}

我如何指定执行某种美学改变的按钮?

1 个答案:

答案 0 :(得分:-2)

在actionlistener中,e.getSource()将返回您单击的按钮