Pessoal
Estou tentando de várias maneiras fazer uma telinha que fique mostrando um JProgressBar enquanto o sistema se conecta ao banco de dados, mas estou encontrando algumas dificuldade ao chamar um JDialog que fiz com o bendito JProgressBar rodando.
Esse código está em um JFrame que faz a chamada ao JDialog e depois se conecta ao banco:
JDialogConectando aguarde = new JDialogConectando(this, "Aguarde...", "Conectando ao banco de dados...");
aguarde.setVisible(true);
try {
PersistenciaServices.conectarAoBancoPrincipal();
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "Ocorreu um erro ao se conectar com a base de dados:\n\n" + ex.toString());
abrirFormularioCentralizado(new AlterarPersistencia(this, true));
}
aguarde.dispose();
Meu problema é o seguinte, eu preciso chamar o JDialog e o sistema não pode parar de rodar, pois o JDialog deve surgir e a conexão com o banco deve continuar.
Então inicialmente eu chamava e Exibia o JDialog dentro de uma Thread, funcionava em partes, pois o JDIalog aparece vazio, sem nada, conforme imagem abaixo:

Sendo assim eu pensei que o problema estava na Thread, então decidi tirar a Thread e mudar o tipo do JDialog e deixei ele “ModalityType.MODELESS” de maneira que ele não trava a aplicação quando é exibido, seu construtor ficou assim:
public JDialogConectando(java.awt.Frame parent, String titulo, String textoBarra) {
super(parent, ModalityType.MODELESS);
initComponents();
if (!textoBarra.isEmpty()) {
jProgressBar1.setString(textoBarra);
jProgressBar1.setStringPainted(true);
} else {
jProgressBar1.setStringPainted(false);
}
jProgressBar1.setIndeterminate(true);
setTitle(titulo);
setLocationRelativeTo(null);
setResizable(false);
setAlwaysOnTop(true);
}
E mesmo assim não adiantou, o resultado é o mesmo mostrado na imagem, ele abre o JDialog e não trava o sistema, porém o JDialog fica em branco.
Se eu rodar o JDialog com seu próprio método Main, ele abre normal com o ProgressBar:
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
JDialogConectando dialog = new JDialogConectando(new javax.swing.JFrame(), "", "");
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}

Alguem sabe como resolver este problema?
Obrigado
Douglas Junior