因此,由于某种原因,当我尝试使用 for 循环来初始化棋盘中的面板时,它实际上循环了循环本身。换句话说,它不会永远持续下去,而是会一次又一次地开始和完成。
package chessgame;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ChessGame extends JFrame implements ActionListener{
public static final int WIDTH=800;
public static final int HEIGHT=800;
public static void main(String[] args) {
ChessGame gui = new ChessGame();
gui.setVisible(true);
}
public ChessGame(){
super("Chess Game Demo");
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(8,8));
JPanel[] chessSquares = new JPanel[64];
for (int a=0;a<64;a++){
System.out.println(a);
}
}
}
我已经包含了所有可能相关的代码,因为我计划使用 chessSquares 的索引来为黑色和白色的方块着色。当我这样做时,我也会得到一个 NullPointerException。我可以理解为什么会出现以下错误,但我完全不明白为什么 a 会一遍又一遍地打印 0, 1....62, 63 。我对 Swing 比较陌生,完全不知道为什么会这样。如果有人能解释这将非常有帮助。谢谢。