为什么这段代码有错误:NullPointerException?

时间:2012-07-24 19:39:01

标签: java exception pointers null

这段代码是我用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();
    }
}

3 个答案:

答案 0 :(得分:2)

因为按钮[0] [0]为空。您初始化数组但没有元素。

答案 1 :(得分:2)

您永远不会初始化任何JButton。当你宣布

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

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

初始化
null

答案 2 :(得分:2)

JButton[][] button = new JButton[3][3];实际上并未初始化按钮。您需要创建新按钮并将其粘贴在此处。