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);
}
И в моем втором классе 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;
}
Хорошо ... так что я отправляю это 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()
определенно не нулевой, но я получаю NPE внутри setText()
-особенно при перезагрузке. Это HTML и сложный, но изменение текста слегка предотвращает NPE, но оставляет непростое чувство.
По названию опубликован обходной путь HTMLEditorKit throws NullPointerException when reloaded.
Обходной путь создает (неиспользованный) ParserDelegate{}
перед setText()
работал на меня.http://forums.oracle.com/forums/thread.jspa?threadid=1773568&tstart=0