Formatar um campo

9 respostas
B

Como formato um jtextfield para ele receber R$ antes de tudo que for escrito ex: o jtextfield tem la R$ ja padrao, se eu digitar 100 ele vai adiciona o 100 depois do R$, alguem sabe como fazer?
Grata pela atencao

9 Respostas

R

Você pode usar um label na antes do campo, Ex:new JLabel(“R$”),mas se quiser deixar dentro do campo, crie o JTextfield e de um setText(“R$”).

malucocelo

Se você quiser pode criar um label antes do jTextField e por o R$ lá, mas, se preferir no jTextField mesmo, vo cê pode fazer o seguinte:

adiciona um keyListener para keyReleased e nele você faz:

if(! nomeTextField.gettext().contains(R$”)){

nomeTextField.settext(R$”+ nomeTextField.gettext())

}
R

A solução com o keyListener é boa!!!

B

malucocelo

Gostei da sua logica e entendi e acredito que ela ira resolver meu problema obrigado por sua atencao e de todos que me ajudaro, agora me fala uma coisa soh nao entendi uma coisa como assim adicionar um keylistener para keyreleased? o meu form implemente keylistener e dentro do meu metodo keyreleased tenho um laco switch la que trato as acoes do meus botoes pressionado! e colocar isso la nao ira funcionar

if (!jt_salario.gettext().contains("R$")) {
            jt_salario.settext("R$" + jt_salario.gettext())
        }

correto?

malucocelo

Se você tem um keyListener geral para todo o formulário, você deve tratar em qual campo houve a atualização de conteúdo. Se for um keyListener por campo aí basta colocar o código direto nele.

Fernando_Generoso_da

faz assim:

NumberFormat format = NumberFormat.getCurrencyInstance(new Locale("pt", "BR"));
System.out.println(format.format(Double.parseDouble("12547.26")));

modifique esse código para pegar o valor do teu JTextField e coloque-o em um focusLost do FocusListener do teu JTextField.

O código da volta:

String val1 = format.format(Double.parseDouble("12547.26"));
Number n = format.parse(val1);

Fernando

Fernando_Generoso_da

malucocelo:
Se você quiser pode criar um label antes do jTextField e por o R$ lá, mas, se preferir no jTextField mesmo, vo cê pode fazer o seguinte:

adiciona um keyListener para keyReleased e nele você faz:

if(! nomeTextField.gettext().contains(R$”)){

nomeTextField.settext(R$”+ nomeTextField.gettext())

}</blockquote>

O keyListener não seria o melhor, pois a cada entrada de caracter ele dispararia o listener…Talvez o melhor seja mesmo o FocusListener.

Fernando

B

Fernando obrigado por sua atencao, mas veja o seguinte esse codigo em um focus lost ele so vai setar o R$ depois que o campo perder o focu! , porem minha necessidade eh a seguinte eh precisava que o R$ estivese antes ja no campo jtextfield antes de eu digitar o valor entende por isso creio que precisaria fazer uma mascara com R$ que carrega-se assim que o form abri-se! mas a questa eh como chamar R$ em um jtextfield e quando o campo jtextfield ganhar o focu, o cursor estiver depois do R$ (AQUI).

qualquer coisa que nao tenha entendido, eu posso explicar denovo muito obrigada pela sua atencao!

malucocelo

Você pode usar o setText com R$ e deixar o listener fazendo a verificação que postei lá em cima biluquinha.

Criado 21 de agosto de 2009
Ultima resposta 24 de ago. de 2009
Respostas 9
Participantes 4