抛出NullPointerException的JTextField.setText()

时间:2011-01-20 17:08:15

标签: java swing nullpointerexception jtextfield settext

我正在尝试学习java,我正在尝试制作一个简单的计算器。出于某种原因,我在NullPointerException上收到TextField.setText()

这是我的代码:

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);会导致空指针异常。

任何帮助?

3 个答案:

答案 0 :(得分:2)

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

 txtScreen = new JTextField();

答案 1 :(得分:1)

您尚未使用值初始化txtScreen。

你需要这样的东西:

txtScreen = new JTextArea();

尝试在初始化时发布代码。

答案 2 :(得分:1)

Java中存在n个错误,各种版本。就我而言,我有build 1.6.0_25-b06。传递给JTextPane.setText()的字符串绝对不是空的,但是我在setText()内获得了一个NPE - 特别是在重新加载时。它是html,而且很棘手,但改变文本会略微阻止NPE,但会留下一种不安的感觉。

在标题HTMLEditorKit throws NullPointerException when reloaded.下发布了一种解决方法。解决方法在ParserDelegate{}为我工作之前实例化了一个(未使用过的)setText()http://forums.oracle.com/forums/thread.jspa?threadID=1773568&tstart=0