Olá, pessoal. Tudo certo?
Não tenho problemas em criar um JProgressBar, mas eu queria criar um que acompanhasse o processo de inicializar o framework Hibernate na aplicação, ou seja, que ficasse enchendo a barra de progresso enquanto o Hibernate abre uma sessão com o método openSession().
Já tentei algumas coisas, como criar um flag, ou criar uma outra Thread para verificar se o Hibernate está com sessão aberta ou não. Primeiramente tentei usar o método isClosed() da sessão, mas não funcionou…
Atualmente, o código da minha Thread que preenche o JProgressBar está assim:
import java.awt.Window;
import javax.swing.JProgressBar;
/**
*
*
* @author Onyas D. Claudio
*/
public class UtilProgressBarThread extends Thread {
/** Determina o valor de início da Thread. */
public int inicio;
/** Determina o valor final da Thread. */
private int fim;
/** Barra de progresso que vai ser carregada. */
private JProgressBar progresso;
/** Tela pai do progressBar que vai ser fechada quando este carregar. */
private Window telaPai;
/**
* Cria uma nova Thread para o progress bar, definindo um valor
* final de alvo.
*
* @param fim determina o valor final.
*/
public UtilProgressBarThread(int fim, JProgressBar progresso, Window telaPai) {
inicio = 0;
this.fim = fim;
this.progresso = progresso;
this.telaPai = telaPai;
} // Fim do construtor
/** Inicia uma nova <code>Runnable</code>. */
@Override
public void run() {
while (inicio <= fim && !interrupted()) {
HibernateUtil.getSessionFactory().openSession();
progresso.setValue(inicio);
try {
sleep(15);
} catch (InterruptedException ie) {
ie.printStackTrace();
} // Fim do controle try/catch
inicio++;
} // Fim do while
telaPai.dispose(); // Quando termina de carregar o hibernate, fecha a tela anterior
} // Fim do método run
} // Fim da classe UtilProgressBarThread
Desse jeito está completamente inútil. Ele carrega a barra depois que o hibernate abriu a sessão e também por um tempo pré-determinado. Gostaria que a barra fosse enchendo de acordo com que o Hibernate fosse inicializando na aplicação.
Estou aberto à idéias. Agradeço desde já.