Eso pasa porque Swing trabaja todos los eventos de la interfaz como una cola en un thread independiente (EDT por sus siglas en ingés), por lo que si estamos ejecutando tareas dentro de ese thread, estaremos bloqueando las peticiones de actualización de la interfaz.
Intenta con lo siguiente:
Código Java:
Ver original
final SwingWorker worker = new SwingWorker() {
while(consultaFinalizada()) {
DialogoCargando =new DialogoCargando(); // es un hermoso dialogo con una etiqueta con un gif animado.
}
existeUsuario=existeUsuarioEnBD(usuario);
return existeUsuario;
}
worker.execute();
}
public Boolean consultaFinalizada
() {
// codigo para saber si una consulta fue hecha
// el codigo de la consulta tiene que implementar una variable que diga
// si una consulta se ha llevado a cabo o no.
}