[Dúvida] Formatação Data JformattedTextField

Olá Pessoal, boa tarde!

Tenho um JFormattedTextField, com a formatação ##/##/####, porém todavia, este objeto aceita datas como: 99/99/9999, o que não é mto legal e bem loko(imagina 99 dias num mês, durante 99 meses - seria praticamente uma vida infinita), não é mesmo?
Então pessoal, qual a maneita mais legal, simples, fácil, de boa, para validar essa increnca.

Thanks!

A CLASSE

[code]package util.Data;

import java.util.GregorianCalendar;

public class ValidaData {

public ValidaData() {   
}   
//public static void main(String[] s) {   
// System.out.println(validaData("22/09/2010"));       
// }   

public static boolean validaData(String data) {  

	GregorianCalendar calendar =  new GregorianCalendar();     
	int dia = 0,mes = 0,ano = 0;   

	String diaStr = data.substring(0,2);   
	String mesStr = data.substring(3,5);   
	String anoStr = data.substring(6,10);   

	try {   
		dia = Integer.parseInt(diaStr);   
		mes = Integer.parseInt(mesStr);   
		ano = Integer.parseInt(anoStr);   
	} catch (Exception e) {   
		return false;   
	}   
	if (dia < 1 || mes < 1 || ano < 1)   
		return false;   
	else   
		if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12)   
			if (dia <= 31)   
				return true;   
			else   
				return false;   
		else   
			if (mes == 4 || mes == 6 || mes == 9 || mes == 11)   
				if (dia <= 30)   
					return true;   
				else   
					return false;   
			else   
				if (mes == 2)   
					if (calendar.isLeapYear(ano))   
						if (dia <= 29)   
							return true;   
						else   
							return false;   
					else   
						if (dia <= 28)   
							return true;   
						else   
							return false;   
				else   
					if (mes > 12)   
						return false;   
	return true;   
}   

} [/code]

ONDE CHAMA:

[code] String data = txtDataNascimento.getText();
if(!ValidaData.validaData(data)){

		txtDataNascimento.setBackground(Color.RED);

		new  Mensagem(this,"Aviso", "     Informe o Data correta !!!", Mensagem.MSG_BOTAO_OK, Mensagem.MSG_ICONE_INFORMACAO);

	}else{

		txtDataNascimento.setBackground(Color.WHITE);[/code]

humm…

Ok, coloquei no carret event e deu certo!

[quote] }else{

txtDataNascimento.setBackground(Color.WHITE); [/quote]
Essa cor de fundo do campo de texto pode depois de ser alterada tem de usar um método revalidate ou repaint para funcionar?