好的,所以我正在尝试将 64 个 JButtons 的数组添加到具有 8 x 8 网格布局(棋盘类型的东西)的 JFrame。这是相关的代码部分:
public class othello implements ActionListener{
int [][] board = new int[8][8];
JFrame window = new JFrame();
JButton[] buttons = new JButton[64];
public othello(){
window.setSize(400,400);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(8,8));
window.setVisible(true);
for (int i=0;i<64;i++){
buttons[i] = new JButton("");
buttons[i].addActionListener(this);
window.add(buttons[i]);
}
for (int i=0;i<8;i++){
for (int j=0;j<8;j++){
board[i][j]=2;
}
}
board[3][3]=0;board[4][4]=0;
board[3][4]=1;board[4][3]=1;
}
public void actionPerformed(ActionEvent e){
for (int i=0;i<8;i++){
for (int j=0;j<8;j++){
if(e.getSource()==buttons[i]){
buttons[i].setEnabled(false);
board[i][j]=1;
check();
}
}
}
}
public static void main (String[] args){
new othello();
}
}
这段代码的结果是实际上添加了看似随机数量的按钮。有时它会添加所有 64 个,更常见的是它可能会添加一半左右,它总是正确启动但在任意点停止(我通过让按钮标签计数来测试)。
我添加了一些 println 来查看循环本身是否真正完成,那里没有问题,它会循环 64 次,它只是在某个时候停止添加按钮。
我是 Java 的初学者,所以我确信这非常简单和愚蠢,但我目前不知道出了什么问题。任何人都可以帮忙吗?
编辑更多代码。