我想知道, NullPointerException 主要是什么。
我对这个错误代码的理解是有一个使用null值的变量。但这究竟意味着什么呢。请寻求你的启示。
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at TicTacToe.<init>(TicTacToe.java:29)
at TicTacToe.main(TicTacToe.java:49)
public class TicTacToe {
JPanel t3pan;
JButton button1;
JButton button2;
JButton button3;
JButton button4;
JButton button5;
JButton button6;
JButton button7;
JButton button8;
JButton button9;
TicTacToe()
{
t3pan = new JPanel();
GridLayout gl = new GridLayout(3,3);
t3pan.setLayout(gl);
t3pan.add(button1);
t3pan.add(button2);
t3pan.add(button3);
t3pan.add(button4);
t3pan.add(button5);
t3pan.add(button6);
t3pan.add(button7);
t3pan.add(button8);
t3pan.add(button9);
JFrame t3frame = new JFrame();
t3frame.setContentPane(t3pan);
t3frame.pack();
t3frame.setVisible(true);
}
public static void main(String[] args)
{
new TicTacToe();
}
}
答案 0 :(得分:3)
button1
到button9
是null
(他们没有价值)。你声明了它们,但你从未实例化过它们。你需要像
JButton button1 = new JButton("Button 1"); //<-- for all 9.
类字段的默认值
JButton button1;
是null
,因此相当于
JButton button1 = null;
答案 1 :(得分:3)
button
个变量为空,因为行t3pan.add(button1)
等等因NullPointerException
s而失败。
在将按钮变量添加到t3pan
之前,您需要初始化按钮变量。