这段代码是我用Java Swing制作的Tic Tac Toe程序的一部分。为什么在添加添加按钮的for语句时会返回NullPointerException?
import java.awt.*;
import java.awt.event.ActionListener;
import javax.swing.*;
public class TicTacToeGui extends JFrame
{
public final static int r = 3;
public final static int c = 3;
TicTacToeGui()
{
JButton[][] button = new JButton[3][3];
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(r, c));
JLabel label = new JLabel("This is a tic tac toe game.");
for(int i = 0; i < r; i++)
{
for(int j = 0; j < c; j++)
{
panel.add(button[i][j]);
}
}
this.add(label);
this.add(panel);
this.setSize(400, 400);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String [] args)
{
new TicTacToeGui();
}
}
答案 0 :(得分:2)
因为按钮[0] [0]为空。您初始化数组但没有元素。
答案 1 :(得分:2)
您永远不会初始化任何JButton
。当你宣布
JButton[][] button = new JButton[3][3];
它只是创建一个空{3}的3x3数组,你必须手动遍历数组数组中的每个点并用
初始化null
答案 2 :(得分:2)
行JButton[][] button = new JButton[3][3];
实际上并未初始化按钮。您需要创建新按钮并将其粘贴在此处。