quinta-feira, 16 de fevereiro de 2012

Como usar MaskFormatter sem preencher toda a máscara ?

No sistema que estou desenvolvendo para a minha conclusão de graduação, estou usando Swing no NetBeans 7.0.1 e me deparei com uma situção bem chata no desenvolvimento do projeto. Havia uma tela com campos que precisava validar a entrada de dados, alguns campos só tinham que aceitar números, outros poderiam aceitar qualquer caracter e por ai vai. Comecei a pesquisar e percebi que muitas pessoas utilizavam o componente JFormattedTextField para esse tipo de trabalho, então comecei a fazer minhas experiências e no começo obtive sucesso mas, depois percebi que quando nao preenchia toda a máscara a informação que estava na caixa de texto sumia. Mais uma vez pesquisei sobre o assunto e encontrei a solução e vou compartilha-lá com vocês.

Nesse meu caso eu "setava" a máscara via minha codificação, assim tendo um trabalhão. Quando se trabalha com swing existem duas certezas, a primeira é: tem se conhecer bem OO e java e a segunda é: ter paciência pra escrever bastante código. Tendo essas duas certezas na cabeça, o segredo é saber utilizar bem os recursos que a ferramente provê e isso o NetBeans faz bem.

Para esse tipo de problema com máscara o NetBeans disponibiliza um editor com máscaras prontas(numérica, moeda, data, entre outros) e nos livram dessas dores de cabeça, para usar esse editor siga os seguintes passos:

clique com botão direito do mouse em cima do JFormattedTextField > Propriedades > formatterFactory > clique no botão de alteralção > o editor vai ser aberto.

Espero ter ajudado, fiz esse post em cima desse endereço

http://javafree.uol.com.br/topic-862647-Mascaras-no-NetBeans.html

Dêem sua opinião galera.

Um comentário:

Rádio Thenko disse...

Boa tarde, e nesse editor do netbeans, o que foi que vc fez para resolver o problema? quando não se quer preencher toda a mascara...

eu to tratando com números de telefones... temos celulares com 8 e 9 dígitos e telefones fixos com 8.
por isso há casos em não precisamos digitar todos.

uso a mascara personalizada: (##)####-####... vc sabe como ficaria a nova?