dúvida quase no fim: casa decimal em jformattedtextfield

Boa noite!

Nem faço ideia de quanto tempo estou a procura de uma solução para trabalhar com formatação de um jformattedtextfield, mas agora tô satisfeito com os resultados que finalmente consegui aqui no guj. Meu programa pode ficar do jeito que está, gostaria apenas que vocês tirassem umas pequenas dúvidas:

Estou utilizando o seguinte código:

DecimalFormat decimal = new DecimalFormat("#,###.00");
			NumberFormatter numFormatter = new NumberFormatter(decimal);
			numFormatter.setFormat(decimal);
			numFormatter.setAllowsInvalid(false);
			jFormattedTextField1 = new JFormattedTextField();
			jFormattedTextField1.setFormatterFactory( new DefaultFormatterFactory(numFormatter));

Como podem perceber, a formatação do campo ocorre exatamente do jeito que eu preciso, com o preenchimento das casas decimais com “,”.

Se eu informar o valor 10,55 por exemplo, consigo gravar no meu banco de dados (MySQL), só que ao visualizar os registros, no banco ficou registrado como se eu tivesse digitado 10.55 , ou seja, com ponto ao invés de vírgulas. Se eu digitar 10.500,00, no banco fica 10500.00. Tem como corrigir isso no banco?

Mais uma vez agradeço pela ajuda.

Obs: Como faço para colocar um tópico como resolvido aqui no guj?

O Banco esta como tipo float?

Faça um teste amigo, ao sair do campo, mande um JOptionPane exibir o que contem nele. Se mostrar a formatação errada, é porque provavelmente algo esta tratando isso na hora de jogar no banco, ou o programa ou o banco mesmo.

Abraços

[quote=marcusluiz83]Boa noite!

Nem faço ideia de quanto tempo estou a procura de uma solução para trabalhar com formatação de um jformattedtextfield, mas agora tô satisfeito com os resultados que finalmente consegui aqui no guj. Meu programa pode ficar do jeito que está, gostaria apenas que vocês tirassem umas pequenas dúvidas:

Estou utilizando o seguinte código:

DecimalFormat decimal = new DecimalFormat("#,###.00");
			NumberFormatter numFormatter = new NumberFormatter(decimal);
			numFormatter.setFormat(decimal);
			numFormatter.setAllowsInvalid(false);
			jFormattedTextField1 = new JFormattedTextField();
			jFormattedTextField1.setFormatterFactory( new DefaultFormatterFactory(numFormatter));

Como podem perceber, a formatação do campo ocorre exatamente do jeito que eu preciso, com o preenchimento das casas decimais com “,”.

Se eu informar o valor 10,55 por exemplo, consigo gravar no meu banco de dados (MySQL), só que ao visualizar os registros, no banco ficou registrado como se eu tivesse digitado 10.55 , ou seja, com ponto ao invés de vírgulas. Se eu digitar 10.500,00, no banco fica 10500.00. Tem como corrigir isso no banco?

Mais uma vez agradeço pela ajuda.[/quote]

vc pode fazer um pegar o valor e convertê-lo em float antes do insert. [sem aparecer pro usuário]

[quote=marcusluiz83]
Obs: Como faço para colocar um tópico como resolvido aqui no guj?[/quote]

edita o post e altera o assunto!

Bom dia!

Tanto no meu programa quanto no banco, está como tipo double. Daria certo se eu convertesse para float?

Abraço!

dificil dizer sem testar…

mas faça a conversão, lembrando que um valor float deve ter um f no fim…