Formatação Moeda  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
marciofermino
GUJ Master
[Avatar]

Membro desde: 11/08/2006 11:54:57
Mensagens: 1125
Localização: Apucarana - Pr
Offline

Amigos fiz o codigo para pegar uma valor digitado pelo usuário: ex. 1.234,10 e poder realizar calculos
ate ai esta funcionando..

com esse codigo.. eu consigo mostrar na tela R$ 1.234,10 e tb tenho valor 1234.1 para poder armazenar no banco MySQL

a pergunta.. é facil e sei que é possivel.

só que meus conhecimentos são poucos.

como eu poderia pegar esse código abaixo..e talvez falar uma classe para poder reaproveitar??

Pq toda vez que tenho que transformar valores ( para apresentação ao usuário e pegar valor para o MySQL tenho que ficar colando esse código)
em java sei que isso não é o certo.. melhor em linguagem nenhuma.

Se algúem puder ajudar com explicação ou poder até mecher no código agradeçõ. como disse meu conhecimento é pequeno.

Prológica Sistemas
Marcio Fermino

Gerador de Codigos JAVA & FLEX
Aulas Java JSF Flex Hibernate Oracle

Desenvolvimento de Sistemas
Contatos:

marciofermino2003@hotmail.com
skype marciofermino
[Email] [MSN]
marciofermino
GUJ Master
[Avatar]

Membro desde: 11/08/2006 11:54:57
Mensagens: 1125
Localização: Apucarana - Pr
Offline

.

Prológica Sistemas
Marcio Fermino

Gerador de Codigos JAVA & FLEX
Aulas Java JSF Flex Hibernate Oracle

Desenvolvimento de Sistemas
Contatos:

marciofermino2003@hotmail.com
skype marciofermino
[Email] [MSN]
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

se vc colocasse os valores em um arquivo e no BD vc carregasse esse dados ?

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
dreampeppers99
Virtual Machine Man
[Avatar]

Membro desde: 29/08/2006 21:50:17
Mensagens: 523
Offline

marciofermino wrote: Amigos fiz o codigo para pegar uma valor digitado pelo usuário: ex. 1.234,10 e poder realizar calculos
ate ai esta funcionando..

com esse codigo.. eu consigo mostrar na tela R$ 1.234,10 e tb tenho valor 1234.1 para poder armazenar no banco MySQL

a pergunta.. é facil e sei que é possivel.

só que meus conhecimentos são poucos.

como eu poderia pegar esse código abaixo..e talvez falar uma classe para poder reaproveitar??


Você pode criar uma Classe chamada dinheiro {Ver Money - Analisys Pattern - FOWLER, Martin} com dois atributos:
-moeda
-montante

Sendo que moeda irá receber qual moeda se trata: "BR" ,"US", "JP" ... e o montante, aconselho a não usar double nem float prefira BigDecimal ou algum inteiro (int, long) parar representar o montante. {pode até dar uma interface fluente para a mesma}


Só deixar a imaginação fluir, dê uma olhadinha já se tem uma mini-framework para Dinheiro em Java.
{http://timeandmoney.sourceforge.net/}
Para dar mais inteligência, crie alguns métodos para a Classe e sobrescreva alguns outros pronto.

Sua classe Dinheiro pode ser usada agora em outros projetos....
Talvez o único problema será tentar alocar-la num local diferente do domínio. {já que o conceito de Dinheiro é comum para vários sistemas} Alguns autores dizem que esta classe deveria estar na base das plataformas.
Uma lida abaixo pode ajudar a entender.
http://fragmental.tw/2008/02/06/superstars-in-your-domain-model/

marciofermino wrote:
Pq toda vez que tenho que transformar valores ( para apresentação ao usuário e pegar valor para o MySQL tenho que ficar colando esse código)
em java sei que isso não é o certo.. melhor em linguagem nenhuma.
Se algúem puder ajudar com explicação ou poder até mecher no código agradeçõ. como disse meu conhecimento é pequeno.

Ao invés de colar o código use a classe Dinheiro.

This message was edited 1 time. Last update was at 07/02/2008 09:14:03


- Não respondo dúvida por PM!
- Blog -> Software development - Clojure, Ruby, Java, Test and little pumpkins
- Blog - Desenvolvimento de software - Java
[WWW]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Aqui fazemos diferente... usamos um FormatterFactory para valores monetários. Desta forma vc não precisa fazer muita coisa, sempre será apresentado o valor de forma correta pro usuário, e sempre vc poderá tb pegar o valor correto pra gravar no BD (seu MySQL).

Vamos a um ex, suponhamos que eu tenha um JFormattedTextField chamado ftf. Então eu programo ele da seguinte forma:



Um trecho da classe Formatador:



O usuário vai digitar no campo normalmente, vc, dentro do fonte, qdo for acessar um valor vc usará:


E qdo for colocar algum valor no JFormattedTextField, vc faz assim:



Espero ter ajudado!



[]'s, Renata
[Email]
marciofermino
GUJ Master
[Avatar]

Membro desde: 11/08/2006 11:54:57
Mensagens: 1125
Localização: Apucarana - Pr
Offline

renata.. vc tem razao, e ajudou bastante ...
deixa eu explicar sou desenvolvedor.. mais para java web.. desktop esta sendo novidade

viu notei que o jTextFormat;; existem sim a propriepdade formatfactory.. entao fui la e configurei para o formato moeda
vc tem razao.. o usuario sempre ira ver o valor formatado...

mais como eu poderia agora.. somar + 100 este jtextFormat


float n1 = Float.parseFloat((String) jFormattedTextField1.getText());
// agora quer somar + 100

Prológica Sistemas
Marcio Fermino

Gerador de Codigos JAVA & FLEX
Aulas Java JSF Flex Hibernate Oracle

Desenvolvimento de Sistemas
Contatos:

marciofermino2003@hotmail.com
skype marciofermino
[Email] [MSN]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Como o amigo já disse, não use Float, use BigDecimal. Veja na API sobre este tipo e vai aprender mais sobre métodos possíveis de ser usado no seu caso.

Isso soma 100 no valor do JFormattedTextField e acumula o resultado a uma variável:


[]'s, Renata
[Email]
marciofermino
GUJ Master
[Avatar]

Membro desde: 11/08/2006 11:54:57
Mensagens: 1125
Localização: Apucarana - Pr
Offline

renata. vc tem ajudado muito e estou quase la

so que fiz mais o joption nao mostrou o resultado



o erro

Prológica Sistemas
Marcio Fermino

Gerador de Codigos JAVA & FLEX
Aulas Java JSF Flex Hibernate Oracle

Desenvolvimento de Sistemas
Contatos:

marciofermino2003@hotmail.com
skype marciofermino
[Email] [MSN]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

É,,, parece que vc não deu uma olhada na API sobre BigDecimal como eu falei né? Bom,,, lembre-se disso, pra aprender tem que ler MUITO a API,,, ela é seu guia, seu manual. Bom, tenta assim:



[]'s, Renata
[Email]
marciofermino
GUJ Master
[Avatar]

Membro desde: 11/08/2006 11:54:57
Mensagens: 1125
Localização: Apucarana - Pr
Offline

puxa.. desculpe renata..
estou lendo.. aqui API

mais ainda nao deu.. nossa parece que desktop é mais complicado que java pra web

BigDecimal valor = ((BigDecimal) jFormattedTextField1.getValue()).add(new BigDecimal(100));
JOptionPane.showMessageDialog(null, valor.toPlainString());

Prológica Sistemas
Marcio Fermino

Gerador de Codigos JAVA & FLEX
Aulas Java JSF Flex Hibernate Oracle

Desenvolvimento de Sistemas
Contatos:

marciofermino2003@hotmail.com
skype marciofermino
[Email] [MSN]
marciofermino
GUJ Master
[Avatar]

Membro desde: 11/08/2006 11:54:57
Mensagens: 1125
Localização: Apucarana - Pr
Offline

amigos ta faltando pouco e to ficando maluco ..rsss




o erro


Vou colocar como configurei o jFormattedTextField
[Thumb - imagem.JPG]
 Nome do arquivo imagem.JPG [Disk] Download
 Descrição
 Tamanho 33 Kbytes
 Baixado:  91 vez(es)


Prológica Sistemas
Marcio Fermino

Gerador de Codigos JAVA & FLEX
Aulas Java JSF Flex Hibernate Oracle

Desenvolvimento de Sistemas
Contatos:

marciofermino2003@hotmail.com
skype marciofermino
[Email] [MSN]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Vc postou o erro:



Agora me diga, o que está na linha 73 da sua tela2.java?

Me mostra o código fonte, essas telinhas da IDE normalmente não ajudam muito, escondem a real programação.

[]'s, Renata
[Email]
marciofermino
GUJ Master
[Avatar]

Membro desde: 11/08/2006 11:54:57
Mensagens: 1125
Localização: Apucarana - Pr
Offline

NAO NAO ESQUECE LA NAO TEM NDA RSS

EU CONSEGUI FAZER CALCULOS ..li api e ve se é isso memso
notei que nao posso simplesmente fazer n3 = n1 + n2 .ou posso :

olha so como eu fiz



Se eu pudesse fazer n3 = n1 + n2 seria mais facil... fiz certo ?:

Prológica Sistemas
Marcio Fermino

Gerador de Codigos JAVA & FLEX
Aulas Java JSF Flex Hibernate Oracle

Desenvolvimento de Sistemas
Contatos:

marciofermino2003@hotmail.com
skype marciofermino
[Email] [MSN]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Então, com o tipo BigDecimal vc não pode somar simplesmente usando o +. A forma como vc fez está certa aparentemente.

Eu fiz um exemplo aqui pra vc ver de uma outra forma:





[]'s, Renata
[Email]
marciofermino
GUJ Master
[Avatar]

Membro desde: 11/08/2006 11:54:57
Mensagens: 1125
Localização: Apucarana - Pr
Offline

obigado..darling

Prológica Sistemas
Marcio Fermino

Gerador de Codigos JAVA & FLEX
Aulas Java JSF Flex Hibernate Oracle

Desenvolvimento de Sistemas
Contatos:

marciofermino2003@hotmail.com
skype marciofermino
[Email] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team