2011-01-20 152 views
0

我想學習Java和我試圖做一個簡單的計算器。由於某種原因,我在TextField.setText()上收到NullPointerExceptionJTextField.setText()拋出NullPointerException

這裏是我的代碼:

public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new CalcUI().setVisible(true); 
     } 
    }); 

    Calc c = new Calc(); 
    c.setVals(2,2,'+'); 
    result = c.doCalc(); 
    //need to setText(String.valueOf(c.doCalc())) 
    txtScreen.setText(""+result); 
    System.out.println(result); 

} 

在我的第二類計算:

//sets values from calc GUI to local class vars 
public void setVals(double n1, double n2, char c){ 
    NUM1=n1; 
    NUM2=n2; 
    CHAR=c; 
} 

//do the math 
public double doCalc(){ 
    switch (CHAR){ 
     case '+': 
      RESULT = NUM1+NUM2; 
      break; 
    } 

    return RESULT; 
} 

好了...所以我把它values(2,2),它和c.doCalc()回報4。我的System.out.println(result)打印4但我的txtScreen.setText(""+result);導致空指針異常。

任何幫助?

回答

2

您需要在使用它之前初始化該字段。

txtScreen = new JTextField(); 
+0

這正是我所需要的。現在我無法獲得txtScreen.setText(「」+ result);設置文字。有任何想法嗎? – 2011-01-20 17:40:24

1

您尚未使用值初始化txtScreen。

你需要的東西,如:

txtScreen = new JTextArea(); 

嘗試張貼在那裏你初始化代碼。

0

Java中存在n個現存的錯誤,各種版本。在我的情況下,我有build 1.6.0_25-b06。我傳遞給JTextPane.setText()的字符串絕對不爲空,但我在setText()之內獲得了NPE - 特別是在重新加載時。這是html和棘手的,但改變文本略有妨礙NPE,但留下不安的感覺。

在標題HTMLEditorKit throws NullPointerException when reloaded.下面發佈了一個解決方法。在setText()爲我工作之前,解決方法實例化(未使用的)ParserDelegate{}http://forums.oracle.com/forums/thread.jspa?threadID=1773568&tstart=0

相關問題