for循环与3乘3 2D阵列无法正常工作

时间:2014-03-04 15:39:26

标签: arrays swing

我创建了一个3乘3的按钮阵列,但我发现很难循环每个按钮,它不会正确循环,我不知道我哪里出错了。以下是我的内容:

JButton[][] button = new JButton[3][3];
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
        frame.add(panel);
        frame.setVisible(true);

for(int i = 0; i < 9; i++){
            for(int j = 0; j < 9; j++){
                button[i][j] = new JButton();
                panel.add(button[i][j]);

            }
        }

另外,我希望将它们放在一个3乘3的网格中,而不是一行。

提前致谢。

2 个答案:

答案 0 :(得分:0)

你正在循环,好像你制作了一个9x9 2D阵列,但是你做了3x3。

答案 1 :(得分:0)

要将它们放在3乘3网格中,您需要将GridLayout添加到面板中,就像这样;

panel.setLayout(new GridLayout(3,3));

而且,你使用for循环的方式犯了错误,而不是

for(int i = 0; i < 9; i++)
for(int j = 0; j < 9; j++)

你需要

for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)

因为您已经使用了2D数组并创建了一个3乘3的数组,所以需要在for循环中放置3而不是9。

所以你的最终代码将是

JButton[][] button = new JButton[3][3];
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();

    frame.add(panel);
    frame.setVisible(true);
    frame.setSize(340,340);
    panel.setLayout(new GridLayout(3,3));

          for(int i = 0; i < 3; i++){
        for(int j = 0; j < 3; j++){
            button[i][j] = new JButton();
            panel.add(button[i][j]);

            }
        }

希望这有帮助