Erro Calculando JNumberFormatField

7 respostas
magno_lr

Oi pessoal?

Criei dois campos JNumberFormatField com base na classe postada http://www.guj.com.br/posts/list/97891.java.

O problema é que quando eu tento calcular da o seguinte erro:

Exception occurred during event dispatching:
java.lang.NumberFormatException: For input string: “0,00”
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
neste erro eu tentei somar por zero

o código está assim:
Campos no formulário

num_1 = new crt_emol.JNumberFormatField(); num_2 = new crt_emol.JNumberFormatField();
Cálculo

private void CalcularActionPerformed(java.awt.event.ActionEvent evt) { n1=Float.parseFloat(num_1.getText().trim())+Float.parseFloat(num_2.getText().trim()); JOptionPane.showMessageDialog(null, n1);

no main do sistema esta o locale como eu já li aqui no GUJ

Locale.setDefault(new Locale("pt","BR"));

mesmo que eu mude o locale para para “US” ele dá o erro na bendita “,”.

Por favor me deem uma luz.

Valeu

7 Respostas

magno_lr

Esqueci de dizer, que estou usando o NetBeans 6.5

dyorgio

Cara, isso acontece porque o parse do float e double nos metodos do Java
para isso não aceitam a virgula…soh ponto, e apenas 1
como dica eu diria para vc usar o metodo do campo feito para
pegar o valor dele, getValue()
ai tu terias o valor float, int, double sem problemas.

ou se tu nnao queres trabalhar com o BigDecimal
de replaceAll para tirar tudo que não eh numero
e faça o parse como vc esta fazendo

vlw

magno_lr

Boa noite dyorgio.

Me desculpa pela minha audácia e falta de conhecimento, :oops: , mas vc pode me passar o código de como eu faço tudo o q vc me disse?

Estou começando agora em Java, tive uma pequena introdução no meio do semestre passado, e, tem apenas 2 meses que eu to pegando firme de verdade, resolvi assumir esta como minha linguagem de programação, mas a coisa não é facil, aqui onde moro não temos recursos, tudo tem que ser de fora.

Desde já agradeço mto.

t+

dyorgio

claro cara, fica assim:

private void CalcularActionPerformed(java.awt.event.ActionEvent evt) {  
    n1=num_1.getValue().floatValue()+num_2.getValue().floatValue();  
    JOptionPane.showMessageDialog(null, n1);

Se por um acaso vc esta usando o NetBeans tome cuidado com o tipo
de Variavel que ele declara pro campo…pois se ele estiver declarado JTextField
ai ele não enxerga o metodo getValue()

magno_lr

dyorgio, cara, valeu mto.

Agora mais umas coisisnhas, como eu retorno o valor em uma JNumberFormatField, em uma JTextField e em uma Jtable;
E ainda quando eu apresentar em uma JTable os dados contidos em um resultset, tem como aparecer por exemplo em uma coluna denominada valor os numeros assim R$ 1.150,00;

Como faço isso?

A maior dificuldade que eu enfrento é que são muitas classes para se usar, uma faz isso outra faz aquilo, a maioria do material que encontramos na Internet é em inglês, e, eu não entendo nada de inglês, ai fica mto dificil a parte de interpretação dessas classes, comprei alguns livros, mas não tenho com quem tirar as duvidas que me aparecem, por isso, fico pentelhando caras que sabem e que têm paciência de repassar o conhecimento adquirido, como vc demonstou.

Mto obrigado pela força.

Caso você tenha curiosidade dá uma olhada no mapa de Mato Grosso, procura uma cidade chamada de Juina, vc vai ver onde eu moro.

T

Não se intimide com o “inglês técnico” (que é o usado para ler manuais, documentações e outras coisas).

Por incrível que pareça, ele é mais parecido com o português que você imagina. (Dá para você fazer umas “picaretations” e umas “enrolations” tranquilo".)

Depois de algum tempo você acaba aprendendo, não digo “por osmose”, mas é quase; é só você ter um pouco de paciência - e é realmente importante para sua vida profissional.

magno_lr

Caramba, dois dias lendo para chegar a isto.

private void calcularActionPerformed(java.awt.event.ActionEvent evt) { result.setValue(num_1.getValue().add(num_2.getValue())); }
dyorgio eu sei q vc vai dizer que era isto que vc estava querendo dizer no começo, mas fazer oquê, eu sou apenas iniciante.

Valeu

Criado 12 de abril de 2009
Ultima resposta 14 de abr. de 2009
Respostas 7
Participantes 3