jtextfield.settext()nullpointerexceptionのスロー
-
13-10-2019 - |
質問
私は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);
}
そして私の2番目のクラスでは、計算:
//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);
ヌルポインターの例外を引き起こします。
何か助けがありますか?
解決
フィールドを使用する前に、フィールドを初期化する必要があります。
txtScreen = new JTextField();
他のヒント
値でtxtscreenを初期化していません。
あなたは次のようなものが必要です:
txtScreen = new JTextArea();
初期化するコードを投稿してみてください。
Javaには既存のバグがあり、さまざまなリリースがあります。私の場合、私は持っています build 1.6.0_25-b06
. 。私が渡す文字列 JTextPane.setText()
間違いなくnullではありませんが、私は中にnpeを取得します setText()
- 特にリロードで。それはHTMLであり、トリッキーですが、テキストを変更するとNPEがわずかに防止されますが、不安な感覚を残します。
タイトルの下で公開されている回避策があります HTMLEditorKit throws NullPointerException when reloaded.
回避策はインスタンス化されます(未使用) ParserDelegate{}
の前に setText()
私のために働いた。http://forums.oracle.com/forums/thread.jspa?threadid=1773568&tstart=0