JProgressBar com BD

Olá pessoal.

Tenho uma pequena aplicação onde o usuário após fazer determinados filtros clica em um botão “Executar”. Hoje após ele fazer isso há uma conexão com Oracle que traz os dados de acordo com os filtros feitos por ele e está funcionando corretamente.

Minha idéia é que no momento que ele clicar no botão e inicializar a conexão com o banco eu quero que meu progressBar seja visualizado pelo usuário e acompanhe o progresso da extração da query.

Alguém poderia me ajudar ?

Muito Obrigado.

Se não me falha a memória tu deve usar o progress como um listener que vai recebendo os dados da progressão dos eventos do teu programa. Como esta tarefa de consulta ao banco não é determinístico (o volume de dados pode influenciar de forma variável) tu deves usar algo com o que está aqui (indeterminate mode). Podes obviamente acrescentar um label pra indicar abertura de conexão, inicialização de objetos, busca… Espero que te ajude, T+

Você vai ter que iniciar uma Thread pra mostrar seu JProgressBar…

Obrigado pela ajuda.

Eu crie dentro do evento actionPerformed do botão o seguinte:

  • Dispara a Thread deixando o progress como indeterminate(true)
  • Cria a conexão com o oracle.
  • Executa a query
  • Pega os dados e joga numa JTable
  • Seta o progress para 0

O problema é que o progress fica congelado mas o resto do processo funciona corretamente.

Vcs poderiam me ajudar como eu faço para que o progress não congele ???

Estais fazendo algo do tipo?

public void actionPerformed(ActionEvent ae) {
    Thread t = new Thread() {
         public void run() {
              //inicializa o progress separadamente
         }
    }
    t.start();
    performQuery(); //faz a chamada desejada... 
}

Está mais ou menos como no código acima? T+

Está muito estranho.
Veja abaixo meu código.

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Thread t = new Thread() {
            public void run() {
                jProgressBar1.setIndeterminate(true);
            }
        };
        t.start();
        
        Connection con;
        String url;
        String user;
        String password;

        url = new String("jdbc:oracle:thin:@localhost");
        user = new String("x");
        password = new String("x");

        try {

           OracleDataSource ds = new OracleDataSource();
           ds.setURL(url);
           ds.getConnection(user,password);
           con = ds.getConnection(user,password);
           Statement stmt = con.createStatement();
           ResultSet rs = stmt.executeQuery("select item, cst_std, buyer from wp_itens_jgr order by 1");

Ainda assim o progress fica congelado durante a execução.
Vc pode me ajudar iktuz ?

Quando implementei utilizei como mostrei anteriormente. Aqui tem os demos da Sun. Só é necessário ter a versão 6 do Java instalada! Ele também utilizar monitores para simplificar o uso. T+