Gracias a la personas que trataron de ayudar, pero ya encontré el error, cuando pierde el foco mando a mostrar otro mensaje y este vuelve a perder el foco, por eso aparece como 4 o dos veces, pero se puede solucionar con banderas, preguntando si las banderas están en falso entre en el bucle, caso contrario siga no mas...
Aqui les va el codigo..
flag debe comenzar en el JInternalFrame como false.
Código:
if ((!(Persona.validarRuc(ruc)))&&(ruc.length()>0)&&(!(flag))) {
flag=true;
String mensaje= "El número de cédula ingresado\n"+ruc+"\nes incorrecto." +"\nVerifique el número de la Cédula";
JOptionPane.showMessageDialog(null,mensaje,"Error en la Cédula", JOptionPane.INFORMATION_MESSAGE);
this.ruc.requestFocus();
this.ruc.selectAll();
} else {
flag=false;
}
Gracias a Vladimir (amigo y profe de la U), a goncafa y a otras personas...