Mascara em um JTextField

Olá Pessoal!

Como faço para criar uma mascara em um campo de texto, para digitação de data por exemplo?

Valeu!

Cristiano

use o JFormattedTextField!!!

use JFormattedTextField ao invés de JtextField.
Dá uma olhada na documentação. Lá tem até como usar.

Recomendo o que meus amigos acima disseram. Tentarei ser breve :mrgreen:

Para fazer uma máscara faça, com os seguintes objetos
:arrow: MaskFormatter
:arrow: JFormattedTextField

Eu recomendaria fazer um método para realização da mascara como o seguinte código

 public MaskFormatter Mascara(String Mascara){
        
        MaskFormatter F_Mascara = new MaskFormatter();
        try{
            F_Mascara.setMask(Mascara); //Atribui a mascara
            F_Mascara.setPlaceholderCharacter(' '); //Caracter para preencimento 
        }
        catch (Exception excecao) {
        excecao.printStackTrace();
        } 
        return F_Mascara;
 } 

Na hora de instanciar o JFormattedTextField faça

JFormattedTextField Campo = new JFormattedTextField(Mascara("##/##/####"));

Corrijam se estiver errado.

5 curtidas

http://javaalmanac.com/egs/javax.swing.text/formtext_FormTextDate.html

Gostei Daniel , eu não sabia e vou dar uma olhada! :mrgreen:

[Editado]
Acredita, vi o SimpleDateFormat ontem!
Mais uma, a manipulação da mascara com o MaskFormatter é bastante flexivel e confiavel

:thumbup:

Valeu galera!

Cristiano

Cristiano, se você usa o Netbeans para desenvolver, você poe utilizar o Post-Creation post. Clica com o botão direito do mouse sobre o jTextField, e vá em propriedades, depois clique em code, depois encontre o Post-Creation post e coloque o seguinte texto:
try{
javax.swing.text.MaskFormatter cpf= new javax.swing.text.MaskFormatter("###.###.###-##");
jTextField1 = new javax.swing.JFormattedTextField(cpf);
}
catch (Exception e){
}

Dessa maneira você deixará o jTextField com a máscara que quiser.

vlw.

[]'s

Beto.

2 curtidas

Parabens cara rapido e claro como deve ser!!!

PERFEITO! muito bom!
parabens!

Parabens pela dica.

Muito simples e claro.

vlwww.

Amigos preciso colocar duas mascarano mesmo Campo,
queria usar a opçao do radio com cpf e cnpj e ele mudar a mascara na opcao que eu escolher, estou usando o pre create, do netbeans.

[quote]Amigos preciso colocar duas mascarano mesmo Campo,
queria usar a opçao do radio com cpf e cnpj e ele mudar a mascara na opcao que eu escolher, estou usando o pre create, do netbeans. [/quote]

Ola, para isso crie os dois RadioButton, por exmeplo, um PessoaFisica e outro PessoaJuridica, blz, criados os dois e adicionados a um RadioButtonGroup defina um ActionPerformed (Clique com o botão direito em cima do RadioButton>Eventos>Action>ActionPerformed) para cada um deles, onde quando o usuário clicar RadioButton ele execute a tarefa, tenho um exemplo aqui, que o padrão é o campo com mascara de CPF, quando o usuário clica no RadioButton Juridica, eu fiz o seguinte codigo

                try {
                    DocumentoCliente.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##.###.###/####-##")));
                } catch (java.text.ParseException ex) {
                    ex.printStackTrace();
                }

o DocumentoCliente eh a variavel do JFormattedText, com esse codigo, a mascara de CPF dá lugar a mascara de CNPJ

Espero ter ajudado,

Abraços

CARRERA

[quote=Betold]Cristiano, se você usa o Netbeans para desenvolver, você poe utilizar o Post-Creation post. Clica com o botão direito do mouse sobre o jTextField, e vá em propriedades, depois clique em code, depois encontre o Post-Creation post e coloque o seguinte texto:
try{
javax.swing.text.MaskFormatter cpf= new javax.swing.text.MaskFormatter("###.###.###-##");
jTextField1 = new javax.swing.JFormattedTextField(cpf);
}
catch (Exception e){
}

Dessa maneira você deixará o jTextField com a máscara que quiser.

vlw.

[]'s

Beto.[/quote]

ÓtEmo :wink:

Muito bom.
Mim ajudou bastante.
vlw

[quote=Betold]Cristiano, se você usa o Netbeans para desenvolver, você poe utilizar o Post-Creation post. Clica com o botão direito do mouse sobre o jTextField, e vá em propriedades, depois clique em code, depois encontre o Post-Creation post e coloque o seguinte texto:
try{
javax.swing.text.MaskFormatter cpf= new javax.swing.text.MaskFormatter("###.###.###-##");
jTextField1 = new javax.swing.JFormattedTextField(cpf);
}
catch (Exception e){
}

Dessa maneira você deixará o jTextField com a máscara que quiser.

vlw.

[]'s

Beto.[/quote]

Simplesmente fantástico, vlw pela dica.

1 curtida

Não sei se estou fazendo alguma coisa errado mas quando coloco o codigo, e compilo meu projeto digito o valor no campo formatado e saio do campo com um tab por exemplo ele zera o campo voltando apenas a formatação no meu caso data ##/##/####.

Alguem pode me ajudar.

Amigos fiz uma mascara no meu textField e também no meu JFormattedTextField, porém
nenhum e nem outro permite a edição depois que executo o sistema, o que
poderá ter acontecido, alguem sabe…?
Abç !@!

[quote]try{
javax.swing.text.MaskFormatter cpf= new javax.swing.text.MaskFormatter("###.###.###-##");
jTextField1 = new javax.swing.JFormattedTextField(cpf);
}
catch (Exception e){
} [/quote]
A dica também me ajudou muito, mas agora fiquei com uma dúvida:

E no caso da máscara de e-mail que tem “n caracteres”@“n caracteres” ?
Alguém tem alguma luz? Procurei aqui no Guj e não consegui achar.

Agradeço quem puder responder!

bom dia galera… eu fiz a maskara ontem!
e curti a forma que esse cara ensina…
da um conferida ai…

[youtube]http://www.youtube.com/watch?v=2pqZGH84Yqs[/youtube]