嗨,我刚刚使用数组,我在3乘3网格中创建2D数组时遇到的问题很少.
下面是我使用9个按钮创建的1D arrray示例,它正常工作,因为它显示了所有9个按钮.
frame.setLayout(new GridLayout(3,3));
JButton[] buttons = new JButton[9];
for (int i = 0; i < buttons.length; i++){
buttons[i] = new JButton();
frame.add(buttons[i]);
buttons[i].setText(".");
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用2D数组时,只显示12个按钮中的6个.
frame.setLayout(new GridLayout(3,3));
JButton[][] buttons = new JButton[3][3];
for (int i = 0; i < buttons.length; i++){
for (int j = 0; j < buttons.length; j++){
buttons[i][j] = new JButton();
frame.add(buttons[i][j]);
buttons[i][j].setText(".");
}
}
Run Code Online (Sandbox Code Playgroud)
另外,我还有一个问题,要调用每个按钮,我需要这样做吗?
button[0].setText("button 1");
Run Code Online (Sandbox Code Playgroud)
并且还可以给每个按钮一个名称,例如代替按钮[0],是否可以使用button1,依此类推.
谢谢.
你的第二个for循环for (int j = 0; j < buttons.length; i++)......它应该是j++,而不是i++.
另外,就像turbo指出的那样,3x3网格不足以容纳12个按钮(我假设你的意思是4x3或3x4?).另外,不要将两者i和jbuttons.length 进行比较,而应该有两个单独的变量来比较每个(buttonsWidth,buttonsLength; buttonsX,buttonsY等).