Empty String em parseDouble ao fazer um cálculo usando o texto de jTextField [RESOLVIDO]

0 respostas
G

Seguinte: eu preciso fazer uma soma (Custos+Extras+MdO), que os números vem de um jTextField e colocar em um terceiro jTextField (Total). Pra isso eu estou usando o DocumentListener nos 3 jTF chamando uma função que faz a conta.
Exemplo: TFCusto.getDocument().addDocumentListener( new DocumentListener() { @Override public void changedUpdate(DocumentEvent e) { CalculaTotaL(); } @Override public void insertUpdate(DocumentEvent e) { CalculaTotaL(); } @Override public void removeUpdate(DocumentEvent e) { CalculaTotaL(); } });

Logo após a inicialização eu pego os valores do banco e coloco nos jTF, exemplo:

TFCusto.setText(String.valueOf(maq.getCusto()));

O CalculaTotal() está assim (os if’s estão aí pq eu pretendo trocar pra 0 quando o TF estiver vazio):

private void CalculaTotaL(){ if(TFCusto.getText() == "") TFCusto.setText("0"); if(TFExtras.getText()=="") TFExtras.setText("0"); if(TFMdO.getText()=="") TFMdO.setText("0"); TFTotal.setText(String.valueOf(Double.parseDouble(TFCusto.getText())+ Double.parseDouble(TFExtras.getText())+Double.parseDouble(TFMdO.getText()))); }

Mas ainda assim, no parseDouble() que eu uso ele diz que a string está vazia.
Eu acredito que o DocumentListener está chamando a função antes dos 3 campos estarem setados e por isso acontece o erro, mas não entendo o motivo dos if’s não resolverem…

Edit: Funcionou, não faço a menor idéia do porque agora funcionou e antes não, mas funcionou…

Criado 17 de abril de 2014
Respostas 0
Participantes 1