Bom dia, queria saber de vocês, o que usar pra chamar um evento quando digito um valor em um jFormattedText.
Ex: Tenho 3 jFormattedText.
Quero adicionar um evento no Desconto, pra quando eu colocar qualquer valor no jFormattedText do desconto, ele ja calcula e ja joga o valor no total. Ou seja, de acordo com que eu mude o valor do desconto, ele ja vai alterando o valor total.
Cara, usa o evento de FocusLost, assim, quando você sair do campo “Desconto” o cálculo vai ser feito “automaticamente”
Obrigado. Ja vai me ajudar. Não tem um que eu permaneça no campo, e de acordo com o que eu vou colocando no desconto, vai alterando “automaticamente” o total?
Tem, o KeyReleased, a cada “tecla solta” o resultado vai atualizar
Eu tentei usar aqui, não consegui não.
Não ta conseguindo pegar o valor da string que estou passando...
String quantidade = String.valueOf(ftfQuantidade.getValue());
String desconto = String.valueOf(ftfDesconto.getValue());
String sub_total = String.valueOf(produtos.get(cbProdutos.getSelectedIndex()).getValor_venda() * Integer.parseInt(quantidade));
Total = Double.parseDouble(sub_total) - (Double.parseDouble(sub_total) * Double.parseDouble(desconto)/100 );
ftfTotal.setValue(Total);
o erro que gera é esse:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "null"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at br.com.sisVendas.RealizarVendas.ftfDescontoKeyReleased(RealizarVendas.java:618)
Essa linha 618 é essa linha:
Total = Double.parseDouble(sub_total) - (Double.parseDouble(sub_total) * Double.parseDouble(desconto)/100 );
O que pode ser !?
Tá dando erro por não conseguir calcular, o valor ta “nulo” então não fez o cálculo, o certo seria apertar enter depois de colocar o valor, tenta isso. Digita todo o valor do desconto e depois coloca aperta Enter pra ver se funciona
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
String quantidade = String.valueOf(ftfQuantidade.getValue());
String desconto = String.valueOf(ftfDesconto.getValue());
String sub_total = String.valueOf(produtos.get(cbProdutos.getSelectedIndex()).getValor_venda() * Integer.parseInt(quantidade));
Total = Double.parseDouble(sub_total) - (Double.parseDouble(sub_total) * Double.parseDouble(desconto)/100 );
ftfTotal.setValue(Total);
}
Até funcionou. Deu certo. Mas a cada pressionada no enter, em vez dele zerar o total e fazer uma nova conta, ele soma em cima do total que ja estava. kkkk
Faz assim, clica com o botão direito em cima do seu formatted, e procura a opção "focusLostBehavior"
, muda pra persist
Não deu em nada. kkkk… O problema é que a cada vez que eu clico no enter, ele soma o subtotal de novo com o total e da o total acrescentado.
Coloca um setText("") no campo de desconto quando vc apertar enter pra ver se ajuda, aí teria que colocar o valor novamente