Mascarar entrada de dados

Todo mundo ja passou por isso e tem milhoes de paginas aqui falando a mesma coisa e bla bla bla.
Mas minha duvida deve ser ridicula de resolver mas nao to conseguindo.

javax.swing.text.MaskFormatter format_textField = new javax.swing.text.MaskFormatter("****");
format_textField.setValidCharacters
("0123456789,");
tfCodigo = new javax.swing.JFormattedTextField(format_textField);
}catch (Exception e){}

tudo bem o cara so vai conseguir digitar numeros e , e tal. Mas se eu nao preencher os 4 blocos do jtext na hora que eu der um tab e for pra outro ele apaga oq ta nele.
O que eu quero é dar a liberdade do cara preencher quantos NUMEROS dentro do jtext ele quiser.
Nao quero usar aquele metodo que aparece e apaga se nao me engano é releaseall, aqui da erro se o cara segura tecla e por ai vai, ou da ctrl + c.

Se alguem puder ajudar. abrs

já experimentou ler esse artigo?

http://www.guj.com.br/articles/29

Você também poderia tratar isso com um KeyListener no JTextField ou JFormattedTextField.

Se não me engano poderia usar o método keyReleased da interface KeyListener.

E faria um tratamento mais ou menos assim:
Se o caractere digitado for um número, então escreve ele no componente, se não for, não escreve.