У меня есть два объекта JFormattedTextField
на моем объекте JFrame
. Мне нужна базовая математика (сложение) значений этих объектов JFormattedTextField
. Я хочу, чтобы это произошло, когда фокус потерял первое или второе текстовое поле. Но когда " focusLost ()
", событие не получает последнее значение, а получает предыдущее значение.
Например; tf1
имеет 0, а tf2
сначала имеет 0. Я записываю 2 в tf1
, и когда focusLost ()
, результат ( tf1 + tf2
) становится нулевым, когда я меняю любой из них, результат становится 2 (предыдущее значение)
Как мне получить последние значения для focusLost?
Вот мой код:
JFormattedTextField tf1,tf2;
NumberFormat format=NumberFormat.getNumberInstance();
tf1=new JFormattedTextField(format);
tf1.addFocusListener(this);
tf2=new JFormattedTextField(format);
tf2.addFocusListener(this);
и focusLost ()
:
public void focusLost(FocusEvent e) {
if(tf1.getValue() == null) tf1.setValue(0);
if(tf2.getValue() == null) tf2.setValue(0);
//because if I dont set, it throws nullPointerException for tf.getValue()
BigDecimal no1 = new BigDecimal(tf1.getValue().toString());
BigDecimal no2 = new BigDecimal(tf2.getValue().toString());
System.out.println("total: " + (no1.add(no2)));
}