Tenho um campo na minha aplicação que mé um JTextField e preciso digitar o peso do paciente.
O que acontece é que preciso padronizar e exibir sempre 1 casa decimal apenas e o peso do paciente pode ter de 0 a mais de 100 dependendo do peso.
Como faço uma mascara para que ao digitar o texto exiba sempre o ponto e à medida em que for digitando os números o ponto fique sempre separando o último digito digitado dos digitos anteriores?
ununes
faz o seguinte:
em vez de vc usar o JTextField utilize o JFormattedTextField, no meu caso eu faço dessa forma
DecimalFormat decimal = new DecimalFormat("#,###.0");
NumberFormatter numFormatter = new NumberFormatter(decimal);
numFormatter.setFormat(decimal);
numFormatter.setAllowsInvalid(false);
textFieldTeste = new JFormattedTextField();
textFieldTeste .setFormatterFactory( new DefaultFormatterFactory(numFormatter));
MaskFormatter mascaraCPF = new MaskFormatter("###.###.###-##");
JFormattedTextField inputCPF = new JFormattedTextField(Estaticos.mascaraCPF);
E uma cola para gerar as máscaras:
Char Description
# Any valid number, uses Character.isDigit .
' Escape character, used to escape any of the special formatting characters.
U Any character ( Character.isLetter ). All lowercase letters are mapped to upper case.
L Any character ( Character.isLetter ). All upper case letters are mapped to lower case.
A Any character or number ( Character.isLetter or Character.isDigit )
? Any character ( Character.isLetter ).
* Anything.
H Any hex character (0-9, a-f or A-F).
euvi esse exemplo do griciolli … e ele funcionou bem …
para meu exemplo ficou assim
DecimalFormat decimal = new DecimalFormat("#,###.##");
NumberFormatter numFormatter = new NumberFormatter(decimal);
numFormatter.setFormat(decimal);
numFormatter.setAllowsInvalid(false);
txt_prod_peso = new JFormattedTextField();
((JFormattedTextField) txt_prod_peso) .setFormatterFactory( new DefaultFormatterFactory(numFormatter));
porem o que veio à tela foi algo do tipo … ’ 1.222.333’ nao veio a virgula … só 2 pontos … (apesar de que para o peso nao é tao importante)
haa sim … quase esqueci … após digitar numeros … se eu tento apagar os numeros … ele sempre deixa o ultimo numero na tela nao permitindo que seja apagado … bloqueia que seja apagado … alguem sabe o por que ?
haa sm … e esse exemplo sobre CPF … poderia mandar ele completo Emoretto ? … me parece estar faltando algo…
eu cheguei a fazer um parecido para CPF mas o que eu fiz esta com erro … por que os pontos e o traço ficam fixos na tela … ao inves de aparecerem quando alcançados …
é só isso que tenho duvidas no momento . vlw galera … brigadao pela dica de peso