0

此代码是我使用 Java Swing 制作的井字游戏程序的一部分。添加按钮的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();
    }
}
4

3 回答 3

2

因为 button[0][0] 为空。您初始化了数组,但其中没有任何元素。

于 2012-07-24T19:42:02.600 回答
2

您永远不会初始化任何JButton. 当你声明

JButton[][] button = new JButton[3][3];

它只是创建一个空的 3x3 数组null,您必须手动遍历数组数组中的每个点并使用

button[row][col] = new JButton("");
于 2012-07-24T19:42:03.910 回答
2

该行JButton[][] button = new JButton[3][3];实际上并没有初始化按钮。您需要创建新按钮并将它们粘贴在此处。

于 2012-07-24T19:42:34.770 回答