Opa, seguinte: no sistema que eu estou fazendo tem uma tela de descontos. Nessa tela o usuário pode marcar a percentagem e/ou o valor que ele deseja dar de desconto. Assim, o displayable que contém esses dois TextFields está seta como itemStateChanged para que a cada alteração se recalcule os valores total e do desconto. Porém, qdo eu tento entrar com os valores do desconto pela primeira vez ocorre um erro na segunda vez que o campo muda de estado:
Segue o método itemStateChanged:
public void itemStateChanged(Item item){
if (item == get_orcDesc1() || item == get_orcDesc2()){
try {
if (isNumber(get_orcDesc1().getString()) && isNumber(get_orcDesc2().getString()) )
this.attValores(); //Chama funcão para modificar os valores
} catch (NumberFormatException ex) {
System.out.println("Algum campo está vazio");
ex.printStackTrace();
}
}
}
Também o método que o itemStateChanged chama:
private void attValores(){
try{
orc.setDescontos(Float.parseFloat(get_orcDesc1().getString()),
Float.parseFloat(get_orcDesc2().getString()));
String format = formatFloat((Object) String.valueOf(orc.calculaTot()), 1); //calculaTot retorna o valor total do orcamento
get_orcDescTot().setText("Total: ".concat( format )); //Seta variavel de tela
format = formatFloat((Object) String.valueOf(orc.getSubTotal()), 1); //Retorna subtotal
get_orcDescSub().setText("SubTotal: ".concat( format )); //Seta variavel de tela
format = formatFloat((Object) String.valueOf(orc.getDesconto()), 1); //Retorna o valor do desconto. Soma a perecentagem + valor em R$
get_orcDescDesc().setText("Desconto: ".concat( format )); //Seta variavel de tela
} catch (Exception e){
e.printStackTrace();
}
}
Ele ele da um nullpointerException, porém não me mostra onde ocorreu essa exception no meu código. Esse erro para de ocorrer só na primeira vez que eu acesso a tela. Se eu reiniciar o processo, ou voltar uma tela e depois retornar a tela em questão tudo funciona normalmente.
Se alguém puder me ajudar, agradeço.
t+