使用For语句创建按钮并将其添加到面板?

时间:2012-07-15 21:31:23

标签: java arrays swing jpanel

我已经尝试了几种方法来做到这一点...基本上我正在尝试为作业创建一个tic tac toe board,也许我错过了一些明显的东西,但我得到的是“不是声明”我尝试创建按钮时出错。这是我得到的代码:

        int rows = 3;
        int cols = 3;
        JPanel ticTacToeBoard = new JPanel();
        ticTacToeBoard.setLayout(new GridLayout(3, 3));
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < cols; j++)
            {
                JButton gameButton[i] = new JButton[];
                ticTacToeBoard.add(gameButton[i]);
            }
        }

...谢谢

2 个答案:

答案 0 :(得分:5)

你需要在某个地方声明你的数组:

JButton[] gameButton = new JButton[size];

然后在你的循环中:

gameButton[i] = new JButton();

例如:

JButton[] gameButton = new JButton[rows * cols];
for (int i = 0; i < rows; i++) {
    for (int j = 0; j < cols; j++) {
        gameButton[i] = new JButton();
        ticTacToeBoard.add(gameButton[i]);
    }
}

您还可以查看Java tutorial on arrays

注意:您是否有理由不使用List而不是数组?如果能让你的生活更轻松。

答案 1 :(得分:4)

以下内容不正确

JButton gameButton[i] = new JButton[];

没有必要[]。只是做

JButton gameButton = new JButton();
ticTacToeBoard.add(gameButton);

如果你想将按钮存储在一个数组中,你应该有像

这样的代码
JButton[] buttonArray = new JButton[10];//or whatever length
...
JButton gameButton = new JButton();
buttonArray[i] = gameButton;