JFormattedTextField ....quando nao digita todo o campo ele apaga

try{
javax.swing.text.MaskFormatter mask = new javax.swing.text.MaskFormatter("##########");
DefaultFormatterFactory d = new DefaultFormatterFactory(mask);
numero.setFormatterFactory( d );
catch (Exception e){}

criei a mascara para ter no maximo 10 digitos ( e somente numeros),porem quando é digitado somente 3 numeros ( exemplo) apaga todos os capos…
porque isso esta acontecendo ? como q arrumo isso ?

e tb como q crio uma mascara para numeros reais…exemplo valor de um produto? e uma outra mascara q tenha no maximo 50 digitos (pode ter tanto letras e numeros) ?

valeu

maxlength:
http://javaalmanac.com/egs/javax.swing.text/LimitText.html

public static MaskFormatter MaskNumero(){

 MaskFormatter masknum;

 try{

    masknum = new MaskFormatter("####"); 
}     catch(Exception e){
    masknum = null;     }
  return masknum;  }

comissaoaluga = new javax.swing.JFormattedTextField();
MaskPreco().install(comissaoaluga);

por que quando eu digito somente 2 numeros somente quando o foco para outro objeto (janela)…so mantem se eu digito os 4 numeros