Quando eu restauro os valores de um form, sempre recebo um
java.text.ParseException: Unparseable number: ""
Mesmo quando não há nada null, tudo preenchido.Eu creio que isso se deve ao fato de usar DocumentListener, tipo abaixo:
private class TestadaListener implements DocumentListener{
private JTextField t;
private JTextField area;
public TestadaListener(JTextField t,JTextField area){
this.t=t;
this.area=area;
}
public void changedUpdate(DocumentEvent e) { /*Do nothing*/ }
public void insertUpdate(DocumentEvent e) {
if(t.getText()!=null&&area.getText()!=null){
new Thread( new Runnable() {
public void run() {
String t=f.atualizarTestadaFicticia(testadaField.getText(),areaField.getText(),ppField.getText());
testada.setText(t);
}
} ).start();
}else{
testada.setText("1,0000");
}
}//fim do insert update
public void removeUpdate(DocumentEvent e) {
String s = t.getText();
if(s.length()<1)
testada.setText("1,0000");
}
}//fim da classe privada TestadaListener
Eu recebo váriáveis nesse formato:1,00, converto para BigDecimal :
public BigDecimal convertToBigDecimal(String value){
Locale.setDefault(new Locale("pt","BR"));
DecimalFormat df = new DecimalFormat("#,##0.00");
try{
df.setParseBigDecimal(true);
BigDecimal bd =(BigDecimal)df.parse(value);
return bd;
}catch(ParseException pe){
pe.printStackTrace();
}
return new BigDecimal("1");
}
Faço as contas que eu tenho que fazer, e converto para String de novo(com 4 casas).
No momento, não atrapalha o meu cálculo, mas não quero deixar passar isso, que creio eu que ocorre devido aos DocumentListeners, entre uma atualização dinâmica e outra, entra um "" nos campos.Alguém tem alguma idéia?