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);
}