Lo que yo veo es que te falta es cancelar el evento si no es valido y evitar que el JTextField no pierda el foco.
Usa este metodo del Evento cuando no sea valido, asi cancelaras la perdida del foco del JTextField.
Código PHP:
evt.consume();
Saludos...