Problema con requestFocus() y lostFocus

SCUMM
09 de Diciembre del 2005
Hola a [email protected]!
Estoy intentado validar un JTextField, cuando pierde el foco compruebo si contiene una fecha válida y si no es así muestro un dialog indicándolo y selecciono todo el texto de ese textfield y hago que recupere el foco. El problema que tengo es que el dialog se me muestra 2 veces y parece que es por requestFocus, que me hace saltar otra vez ese evento.
Os pego el código, quizá esté metiendo la pata en algo. Alguien me puede echar una mano? Gracias!

void campoFecha_focusLost(FocusEvent e) {
String fechaCompra = campoFecha.getText();
if (!fechaValida(fechaCompra)) {
campoFecha.selectAll();
campoFecha.requestFocus();
JOptionPane.showMessageDialog(null, "Fecha no válida.", "Fecha no válida",
JOptionPane.WARNING_MESSAGE);
}
}