2014-12-27 58 views
-1

我想知道,什麼主要由NullPointerException主線程中的NullPointerException異常

我對這個錯誤代碼的理解是存在一個使用空值的變量。但它的真正含義是什麼?請尋求你的啓示。

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(); 
} 

} 
+4

沒有看到任何在任何地方初始化的按鈕 – Reimeus 2014-12-27 18:07:54

+0

如果*參數*爲* null *,方法* add拋出NullPointerException *。 [API文檔](http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html#add%28java.awt.Component%29) – sergioFC 2014-12-27 18:10:33

+0

不看API的反對票發佈問題之前的文檔。 – sergioFC 2014-12-27 18:12:53

回答

3

button1通過button9null(它們沒有值)。你宣佈他們,但你從未實例化它們。你需要這樣的東西,

JButton button1 = new JButton("Button 1"); //<-- for all 9. 

的默認值類字段

JButton button1; 

null,這樣就相當於

JButton button1 = null; 
3

,因爲其的button變量是空行t3pan.add(button1)等等與NullPointerException s一起失敗。

您需要初始化按鈕變量,然後將它們添加到t3pan

+0

謝謝!終於意識到它的真正含義! – lonelearner 2014-12-27 18:47:27

相關問題