Máscara de Data

Olá, comunidade!
Alguém sabe me dizer como faço para criar uma máscara de data em um JFormattedTextField? Eu preciso de uma máscara q conforme o usuário vai digitando a data a barra ‘/’ já aparece automaticamente. Consegui colocar as barras usando MaskFormatter, mas dessa forma ele permite a entrada de uma data inválida como 30 de fevereiro por ex. Tentei usar o ex. abaixo:

DateFormat format = new SimpleDateFormat(“dd/MM/yy”);
DateFormatter df = new DateFormatter(format);
ftf1.setValue(new Date());

No entanto, o ex. acima retorna a data atual do sistema e eu queria q o usuário digitasse a data e fosse feita a validação para saber se data é correta assim q perdesse o fco por exemplo…

Se você quiser aproveitar a classe abaixo para fazer as comparações de dígitos, como no exemplo abaixo. Fique avontade.
E assim validar os campos.

public class Compare
{

//  declaração de variaveis

private Character charact;
private int inteiro;

public void setNum( int inter ) {  }
public boolean getNum() { return true; }

public boolean digito(char ch) 
{ 
     if ( charact.isDigit(ch) ) 
          return true; 
     else 
          return false; 
}
 
public boolean letra(char ch) 
{ 
     if ( charact.isLetter(ch) ) 
          return true; 
     else 
          return false; 
}

}

se o problema é validar pode fazer assim tambem:

public static boolean validaData(String data){
	//impõe formato de data aceito como entrada
	SimpleDateFormat val = new SimpleDateFormat("dd/MM/yyyy");
	val.setLenient(false);
	try {
		val.parse(data);
	} catch (ParseException e) {
		//caso o formato seja invalido
		JOptionPane.showMessageDialog(null,"Você entrou uma data invalida,
 por favor tente novamente!","ERRO!",JOptionPane.ERROR_MESSAGE);
		return false;
	}
	return true;
}

espero ter ajudado