Domanda

Sto cercando di imparare Java e sto cercando di fare una calcolatrice semplice. Per qualche motivo sto ottenendo un NullPointerException sul mio TextField.setText().

Ecco il mio codice:

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

}

E nella mia seconda classe 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;
}

Va bene ... così io mando che values(2,2), e ritorna c.doCalc() 4. Le mie stampe System.out.println(result) 4 ma il mio txtScreen.setText(""+result); causa un'eccezione puntatore nullo.

Qualsiasi aiuto?

È stato utile?

Soluzione

È necessario inizializzare il campo prima di utilizzarlo.

 txtScreen = new JTextField();

Altri suggerimenti

Non hai inizializzato txtScreen con un valore.

avete bisogno di qualcosa di simile:

txtScreen = new JTextArea();

prova a pubblicare il codice in cui si inizializza esso.

C'è n bug esistenti in Java, vari rilasci. Nel mio caso ho build 1.6.0_25-b06. Il pass String I JTextPane.setText() non è assolutamente nulla, ma ho un NPE entro setText() - soprattutto su Ricarica. E 'html, e difficile, ma cambiando il testo impedisce leggermente la NPE, ma lascia una sensazione di disagio.

C'è una soluzione pubblicato con il titolo HTMLEditorKit throws NullPointerException when reloaded. La soluzione un'istanza di un ParserDelegate{} (non utilizzato) prima della setText() ha lavorato per me. http://forums.oracle.com/forums/thread.jspa?threadID = 1773568 & Tinizio = 0

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top