Boa noite pessoal, seguinte busquei varias soluções quanto ao uso de mascara e acabei utilizando o código abaixo para solucionar o problema:
public static MaskFormatter Mascara(String Mascara){
MaskFormatter F_Mascara = new MaskFormatter();
try{
F_Mascara.setMask(Mascara); //Atribui a mascara
//F_Mascara.setPlaceholderCharacter(' '); //Caracter para preencimento
F_Mascara.setValueContainsLiteralCharacters(false);
}
catch (Exception excecao) {
excecao.printStackTrace();
}
return F_Mascara;
}
Mas como nada na vida é tão simples :roll: observei que quando saio de um componente que deixo em branco ele fica com os espaços, ou seja, mesmo que não coloque nada ele fica como se eu tivesse dado espaço nele, e ainda quando tento apagar um texto ele preenche com espaço, para usar o metodo acima eu faço no construtor do JFormattedTextField o seguinte:
edCodigo = new javax.swing.JFormattedTextField(funcoes.Mascara("UUUUUUUU"));
Então queria saber se tem como solucionar isso ou vou ter que procurar uma outra forma de formatar os meus campos ?
Desde já agradeço
Bem, pelo o que entendi, voce quer que o JFormattedTextField nao fica que os pontos e traços, mas que ao voce digitar e chegar aonde tem esses caracteres, eles sao adicionados?
Nao sei se é possivel fazer isso, visto que voce define a mascara ne. Ah nao ser que tenha como oculta-lo.
Abraços
Por favor olhe o link abaixo que lá eu postei um exemplo de formatação que eu usei no meu tcc e funcionava perfeitamente…
http://www.guj.com.br/posts/list/208609.java
se bem que eu acho que é só você alterar a linha abaixo que também resolve o problema.
F_Mascara.setPlaceholderCharacter('_'); //Caracter para preencimento
Espero que ajude
Antes de mais nada obrigado por tentarem ajudar a solucionar a minha dúvida e talvez não tenha ficado bem claro qual o problema ( ou pelo menos eu vejo como problema), então vamos ver um cenário:
Criei o
edNome = new javax.swing.JFormattedTextField(myUtil.Mascara("UUUUUUUU"));
Então entro no campo e não digito nada se eu pegar o tamanho do conteúdo do edNome ele irá trazer 10 mesmo que não tenha digitado nada, então eu poderia utilizar o método TRIM para tirar os espaços e fazer a validações mas como vou utilizar máscara em diversos locais isso ficaria um pouco trabalhoso, uma outra situação indesejável é que vamos supor que o usuário entrou no campo em branco e pressiona DELETE o que acontece é que ele substitui o caracter a direita pelo caracter definido no PlaceHolder e não apaga o caracter realmente.
desde já agradeço a quem puder ajudar.
Bom dia de antemão gostaria de agradecer aqueles que tentaram me ajudar, e informar para quem venha a procurar algo do genero o tópico abaixo:
http://www.guj.com.br/posts/list/132765.java
Nele o pessoal mostra como fazer tipo uma mascara atraves do recurso plainDocument o que achei bem interessante e soluciona os problemas que estava tendo.
Até a próxima .