domingo, 9 de setembro de 2007

JFormattedTextField

Hi dears....
Meu primeiro post será sobre JFormattedTextField =) isso é uma mão na roda na hora de trabalhar com CEP (00.000-000), CPF(000.0000.000-00), Telefone((00)0000-0000), enfim, com "fields" formulários que precisem de um "formato".
Ok, o JformattedTextField é um JTextField metido a besta que trabalha com máscara.... pelo menos é o que eu sei dele...
Mascara é uma parada que tu coloca o formato que tu quer que o teu text field tenha, por exemplo pra cpf utiliza algo mais ou menos assim:


MaskFormatter mascaracpf = new MaskFormatter("###.###.###-##");
JFormattedTextField cpf = new JFormattedTextField(mascaracpf);

Ai com a mascara criada da pra fazer um leque de coisas, como por exemplo setar os caracteres válidos praquele campo:

mascaracpf.setValidCharacters("0123456789");

e mais um monte de coisas como setar o numero de caracteres no campo, e enfim, coisas q vc descobre com o eclipse =)~
beleza,

Edit:
Pra deixar tudo no mesmo post, aqui vão algumas dicas pra usar JFormattedTextField:

Quando você cria o MaskFormatter, pode usar, ao invés de '#', outros caracteres, dependendo do tipo de restrição que você deseja implementar no JFormattedTextField. Esses caracteres são:

# = Qualquer número poderá ser inserido (0-9)
U = Qualquer letra (a-z). A máscara converterá letras minúsculas em maiúsculas.
L = Qualquer letra (a-z). A máscara converterá letras maiúsculas em minúsculas.
? = Qualquer letra (a-z). A máscara manterá a capitalização da letra.
A = Qualquer letra ou numero (0-9 a-z).
H = Qualquer caracter hexadecimal (0-9 a-f).
* = Qualquer coisa, incluindo caracteres especiais.

Pra evitar trabalho (evitar trabalho SEMPRE é bom), aqui tem algumas máscaras já prontinhas pra usar:

Telefone (internacional): "+##(##)####-####"
Telefone (nacional): "(##)####-####"
Data de nascimento: "##/##/####"
CEP: "##.###-###" ou "#####-###"
CPF: "###.###.###-##"
Placa de carro: "UUU-####"
CNPJ: "##.###.###/####-##"
Título de eleitor: "#########/##"

beijo na bunda e até segunda!

5 comentários:

Natália disse...

Deus,q blog nerd...
Mas tah mto fofo, mo!
Tem q fazer mais publicidade dele!

=D

V1nynho disse...

Pô kra, se tivesse mais uns dez assim como vc, os iniciantes teriam mais sucesso... mas tá de boa. Parabens!!! post incrível. Texto limpo, info's claras e diretas.
"Supimpa".
vlws, v1nny.

Anônimo disse...

Reforçando o que já foi comentado; PARÁBENS!!!!!!!!!! MUITO BOM "!!!!!!!!!!!!" ajudou muito , estes detalhes têm que ser mostrados de forma clara como o senhor fez, agradeço, depois de procurar muito no google achei ...

exatamente isto que eu estava procurando

Rob disse...

Me ajudou muito, mas precisei por um try. E tive que descobrir que poem esse código no post-create, ou personalização do código. E pode ser usado assim:
try{
javax.swing.text.MaskFormatter cpf= new javax.swing.text.MaskFormatter("###.###.###-##");
jTextField1 = new javax.swing.JFormattedTextField(cpf);
}
catch (Exception e){
}

Adorei o beijinho na bunda ^~

marcosladarense disse...

MELHOR explicação q vi sobre isso. É a API traduzida. rsrsrs. Eu tentei de várias formas mas só aparecia o JTextField do cpf, mas da dt nasc e telefones ñ. Então percebi q na declaração dos atributos tava :

MaskFormatter mascaracpf,mascararg,mascaracep,mascaratel,mascaradtnasc =null;

aí eu tentei botar o MaskFormatter em cada método de getTextField, invés de deixar como estava e funcionou.