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
Formatar um campo
9 Respostas
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$”).
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())
}
A solução com o keyListener é boa!!!
malucoceloGostei 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?
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.
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
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
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!
Você pode usar o setText com R$ e deixar o listener fazendo a verificação que postei lá em cima biluquinha.