我创建了一个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的网格中,而不是一行。
提前致谢。
答案 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]);
}
}
希望这有帮助