[Resolvido]JFormattedTextField - Zerar valor caso mascara não seja preenchida

Seguinte tenho alguns campos do tipo JFormattedTextField onde neles eu coloquei mascara como a do telefone b####-####[/b] quando tento acessa-lo inicialmente e não preencho a mascara ele limpa o campo(que é o que eu quero caso o campo não seja totalmente preenchido), mas quando eu preencho ele uma vez e tento limpa-lo ele restaura o último dado. Vi que tem a propriedades setFocusLostBehavior() já tentei algumas combinações mais nenhuma faz o que eu quero, por exemplo, quero que mesmo quando eu digitar um campo com a mascara incompleta ele limpe o campo, mesmo já tento digitado campos válidos antes.
Achei um post que o usuário tem o mesmo problema em http://www.guj.com.br/java/130149–resolvido–problema-com-jformattedtextfield.

Tentei algumas coisas aqui também consegui o que eu pretendo mais acho que foi uma gambiarra se alguém souber alguma coisa melhor. Meu código ficou assim adicionei um evento no campo que quando ele perde o foco ele chama o seguinte código:

if(formattedTelefone.getText().trim().length() < 13){ //13 é igual a mascara preenchida formattedTelefone.setText(null); formattedTelefone.setFocusLostBehavior(JFormattedTextField.PERSIST); }

Oi,

Não vejo como gambiarra. Pensando bem, eu faria (já fiz) da mesma forma.

Tchauzin!

Não gostei desse método porque ele não é genérico sendo que você sempre tem que informar o tamanho da mascara e se quiser saber se ele preencheu tudo mesmo tem que fazer uma analise mais minuciosa em toda a String, mas por enquanto resolve, vou tentar outras maneiras, caso consiga coloco aqui.

Oi,

Você pode implementar o PlainDocument do seu textfield para o controle da mascara.

Tchauzin!