Frage

Ich versuche Java zu lernen und versuche, einen einfachen Taschenrechner zu erstellen. Aus irgendeinem Grund bekomme ich eine NullPointerException auf meinem TextField.setText().

Hier ist mein Code:

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

}

Und in meiner zweiten Klasse Calc:

    //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;
}

Okay ... also sende ich es values(2,2), es und c.doCalc() kehrt zurück 4. Mein System.out.println(result) Drucke 4 aber mein txtScreen.setText(""+result); verursacht eine Null -Zeiger -Ausnahme.

Irgendeine Hilfe?

War es hilfreich?

Lösung

Sie müssen das Feld initialisieren, bevor Sie es verwenden.

 txtScreen = new JTextField();

Andere Tipps

Sie haben txtscreen nicht mit einem Wert initialisiert.

Sie brauchen so etwas wie:

txtScreen = new JTextArea();

Versuchen Sie, den Code zu veröffentlichen, in dem Sie ihn initialisieren.

In Java gibt es einen Fehler, verschiedene Veröffentlichungen. In meinem Fall habe ich build 1.6.0_25-b06. Die Zeichenfolge, an die ich übergegangen bin JTextPane.setText() ist definitiv nicht null, aber ich bekomme einen npe drin setText()-Besonders beim Nachladen. Es ist HTML und schwierig, aber das Ändern des Textes verhindert das NPE leicht, lässt aber ein unruhiges Gefühl.

Es gibt eine Workaround unter dem Titel veröffentlicht HTMLEditorKit throws NullPointerException when reloaded. Die Problemumgehung instanziiert a (nicht genutzt) ParserDelegate{} Vor dem setText() arbeitete für mich.http://forums.oracle.com/forums/thread.jspa?threadid=1773568&tstart=0

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top