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…