JFormattedTextField customizado

estou criando uma Classe que amplia a JFormattedTextField.
Não sei o que fiz de errado :frowning:
quando tento criar o objeto desta forma:

jTxtJurosMes = new TxtFieldFormatado(TxtFieldFormatado.setMascara(1));

o txtField não aceita nenhum tipo de caracter.

aqui está o codigo da classe:

import javax.swing.JFormattedTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.MaskFormatter;
import javax.swing.text.PlainDocument;


public class TxtFieldFormatado extends JFormattedTextField{

	private static final long serialVersionUID = 1L;
	
	public TxtFieldFormatado(MaskFormatter maskara){		
		super(maskara);		
	}

	protected Document createDefaultModel() {
 	      return new UpperCaseDocument();
     }

	//Metodo que transforma todos os caracteres para Uppercase
	static class UpperCaseDocument extends PlainDocument {

		private static final long serialVersionUID = 1L;

		public void insertString(int offs, String str, AttributeSet a) 
	          throws BadLocationException {

	          if (str == null) {
		      return;
	          }
	          char[] upper = str.toCharArray();
	          for (int i = 0; i < upper.length; i++) {
		      upper[i] = Character.toUpperCase(upper[i]);
	          }
	          super.insertString(offs, new String(upper), a);
	      }
    }
	
		
	//	Cria máscara para o FormattedTextField
    public static MaskFormatter setMascara(int tipoMascara){   
    	MaskFormatter mask = null;           
    	try{   
    		switch (tipoMascara){
       			case 1 : {
       				mask = new MaskFormatter();
       				mask.setValidCharacters("0123456789,");
       				break;
       			}
       			case 2 : {
       				mask = new MaskFormatter("##/##/####");       			
       				break;
       			}
       			case 3 : {
       				mask = new MaskFormatter("###.###.###-##");       			
       				break;
       			}
    		}
       	                     
    	}catch(java.text.ParseException ex){}   
    	return mask;   
    }

}

será que alguem pode me dizer onde estou errando?

Oi,
sempre quando você utiliza o método MaskFormatter, ele te obriga a ter uma mascara… isso foi o que faltou…

Segue:

[code] public static MaskFormatter setMascara(int tipoMascara){
MaskFormatter mask = null;
try{
switch (tipoMascara){
case 1 : {
mask = new MaskFormatter("############");
mask.setValidCharacters(“0123456789,”);
break;
}
case 2 : {
mask = new MaskFormatter("##/##/####");
break;
}
case 3 : {
mask = new MaskFormatter("###.###.###-##");
break;
}
}

	}
	catch(java.text.ParseException ex)
	{
		ex.printStackTrace();    		
	}   
	return mask;   
}[/code]

Tchauzin!