Validação no JTextField

5 respostas
M

Olá,

Alguém poderia me dizer se existe algum componente pronto na net que valide entrada de dados em um JTextField ?
Por exemplo, gostaria de determinar que um determinado campo só aceite números com a seguinte máscara “##.##”, o campo não pode deixar o usuário digitar mais digitos do que especificado na máscara e nem outros caracteres. Já tentei usuar o JFormattedTextField, KeyListener, InputVerifier, entre outros, mas de alguma forma todos tem suas limitações.

Valeu!!!

5 Respostas

aborges

Uma vez eu vi um codigo em que o cara implementava a validação de entrada utilizando a interface DOCUMENT

Daih basta passar o danado no construtor do TextField

JTextField(Document doc, String text, int columns)
Constructs a new JTextField that uses the given text storage model and the given number of columns.

R

Vc pode usar a classe MaskFormatter (a partir do jdk 1.4) , onde vc passa uma expressao regular e associa isso a um JFormattedTextField

//JTextField a ser formatado
JFormattedTextField ftf = new JFormattedTextField ();

//Criando a mascara com a expressao regular 
MaskFormatter formatter = new MaskFormatter("###-####");
//instalar a mascara no JTextField
formatter.install(ftf);

Vale a pena dar uma olhada no javadoc da classe para vc conhecer umas features dessa classe

M

O problema o MaskFormatter é que ele server para validação de campos com tamanho exato, por exemplo, RG, CPF e CEP, que não é o meu caso.
Mesmo assim muito obrigado.

aborges

C vc tivesse tido a CURISIDADE de dar uma googlada no que eu escrevi no meu topico, vc acharia alguns sites como este: http://www.developer.com/tech/article.php/610011 que tem uma explicacao e um exemplo legal sobre validacao de entradas em um JTextField…

Logico q nao esta tudo mastigadinho, tem q dar uma lida e tentar enteder, mas isso resolve seu problema …

Jair_Rillo_Junior

Nada que uma lida nos artigos do GUJ não responda a dúvida

http://www.guj.com.br/user.article.get.chain?page=1&article.id=29

Criado 5 de julho de 2004
Ultima resposta 5 de jul. de 2004
Respostas 5
Participantes 4