Problema con JFormattedTextField

tr3xter
11 de Abril del 2008
Primero que nada y de antemano muchas gracias por sus posibles respuestas.
Este es el asunto:
Tengo un formulario con algunos JFormattedTextField los cuales tienes diferentes mascaras: numericas(solo numeros), alfabeticas(aceptando espacio) y alfanumericas(aceptando espacio y algunos simbolos).
El problema aparece cuando cambio el foco entre los JFormattedTextField. Si el JFormattedTextField posee una mascara numerica y no lleno en su totalidad los campos que dice la mascara, automaticamente pierdo la información contenida en el JFormattedTextField
En pocas palabras al cambiar de foco desde un jFormattedTextField mascara numerica pierdo la informacion.
Intenté solucionarlo con setPlaceholder() y setPlaceholderCharacter() sin obtener resultados.
Si alguien puede ayudarme le estaré agradecido.
Les dejo el codigo de mi clase MaskFormatter.
Es un poco raro pero puede que ahi esté el error.
package consultorioUtils;

import javax.swing.text.MaskFormatter;

public class FormatoTexto extends MaskFormatter{

public final static int TELEFONO = 4;
public final static int ALFABETICO_30 = 0;
public final static int NUMERICO = 1;
public final static int ALFANUMERICO = 2;
public final static int CEDULA = 3;
public final static int NUMERICO_2 = 5;
public final static int ALFANUMERICO_500 = 7;

public FormatoTexto(int tipo) throws Exception{
super();
switch (tipo) {
case ALFABETICO_30:
this.setMask("******************************");
this.setValidCharacters("ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz ");
break;
case ALFANUMERICO_500:
this.setMask("**************************************************"+
"**************************************************"+
"**************************************************"+
"**************************************************"+
"**************************************************"+
"**************************************************"+
"**************************************************"+
"**************************************************"+
"**************************************************"+
"**************************************************");
this.setValidCharacters("ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz 1234567890,./()-_:;");
break;
case NUMERICO_2:
this.setMask("##");
break;
case NUMERICO:
this.setMask("###################################################################");
break;
case ALFANUMERICO:
this.setMask("*******************************************************************");
this.setValidCharacters("ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz 1234567890");
break;
case CEDULA:
this.setMask("##########");
break;
case TELEFONO:
this.setMask("####-#######");
break;
}
}


}