MaskFormatter e JFormattedTextField

5 respostas
M

Seguinte gurizada!

Tenho duas perguntas:

Por exemplo:

mcpf = new MaskFormatter("###.###.###-##");
fcpf = new JFormattedTextField();

1° Tem como fazer com q o ‘.’ e o ‘-’ não apereçam no JFormattedTextField quando ele estiver em branco, ou seja, só apareçam conforme o usuário for preenchendo com os dados.

2° Tem como fazer que, quando o usuário clicar com o mouse em qualquer lugar do JFormattedTextField, o cursor fique diretamente posicionado bem na esquerda do campo?

Obrigado!

5 Respostas

J

eu precisei uma vez fazer com q eles fossem aparecendo automaticamente mas nao consegui velho, se vc achar um jeito porta ai pra vermos

agora quanto a segunda pergunta sera que um setCaretPosition(0); ou um
setHorizontalAlignment(JTextField.LEFT);
nao resolve ??

[]'s

M

Não resolveu… =)

Mais alguém?

R

sete o texto no Mask para “”

M

Obrigado pela ajuda pessoal…mas nenhum dos meus dois problemas foi resolvido!

Mais alguém? Outra dica?

D

mdtorbis, também tive problema na utilização de campos com mascara no swing.

Cheguei a conclusão que não funciona para as necessidades reais.

Agora todo campo ‘mascara’ que preciso faço a validacao na saida do campo e depois formato.

Por exemplo:
O meu campo data aceita: “210205”, “21022005”, “21-02-2005”, “21-02-05”, “21/02/05”, “21/02/2005”, “hoje”

Digitando qualquer um destes valores, o campo aceitará a informação e na saida formatará como 21/02/2005.

isso eu consigo graças um arquivo .propertires que mantenho junto com o campo nao qual armazeno EXPRESSAO_REGULAR=FORMATADO.

Por exemplo:
[0-9]{1,2}[/][0-9]{1,2}[/][0-9]{2}=dd/MM/yy
[0-9]{1,2}[/][0-9]{1,2}[/][0-9]{4}=dd/MM/yyyy
[0-9]{1,2}[-][0-9]{1,2}[-][0-9]{2}=dd’-‘MM’-‘yy
[0-9]{1,2}[-][0-9]{1,2}[-][0-9]{4}=dd’-‘MM’-'yyyy
[0-9]{6}=ddMMyy
[0-9]{8}=ddMMyyyy

Com a expressao regular eu testo qual o formato está sendo utilizado, depois com o formato consigo fazer um parse no que foi digitado, transformar para Date e formatar novamente com o formato padrao do campo dd/MM/yyyy para jogar no setText().

Esta tecnica pode ser aplicada para qualquer valor com formato variavel que se conheça, como Hora, CNPJ, Data, Email etc…

abraços, Décio

Criado 2 de dezembro de 2004
Ultima resposta 21 de fev. de 2005
Respostas 5
Participantes 4