0

このコードは、私が 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();
    }
}
4

3 に答える 3

2

ボタン [0] [0] が null であるためです。配列を初期化しますが、その中の要素はありません。

于 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 に答える