JProgressBar

3 respostas
L

Boas pessoal !

Gostaria que algueme desse uma ajuda com a criação de um componente JProgressBar dentro de uma JFrame pequena .

A ideia é a seguinte :
Tenho um botão que ao ser pressionado chama um ActionListener, este ActionListener faaz uma consulta a uma base de dados que por veses o ResultSet é demorado ! Nesta prespectiva, gostaria de no inicio do actionLisntener abrir uma nova janelina (Do tamando de uma OptionPane ) aonde teria uma progressBar configurada com tempo indeterminado. E quando o ActionListener acabasse a sua tarefa essa janela que contem o progressBar se fechasse .

Abaixo segue o codigo do meu ActionListener :

ActionListener tipodeconta = new ActionListener(){
         public void actionPerformed( ActionEvent event )
           {  
//GOSTARIA QUE A MINHA JANELA DE PROGRESSBAR ARRANCASSE NESTE PONTO 
             String sql_query = "select * from tab1where cliente = ? ;
             try
            {
                Class.forName("com.ibm.as400.access.AS400JDBCDriver");
                Connection connection = DriverManager.getConnection("jdbc:as400:ipadress/DB",username,password);

                PreparedStatement prepared_statement = connection.prepareStatement(sql_query);
                prepared_statement.setString(1, Texto1.getText());
                ResultSet rs = prepared_statement.executeQuery(); 
         
              
            while( rs.next())

                { 
  
                 System.out.println(rs.getString(1)); 
                 
                   
                }
                 else
                { } ;
               
                }
                catch (Exception ex)
                {
                 ex.printStackTrace();
                }
             
//GOSTARIA QUE A MINHA JANELA DE PROGRESSBAR ENCERRASSE NESTE PONTO 
        }
    };

Alguem me pode dar uma ajuda na criação e implementação este componente dentro do meu actionListener?

agradeço desde ja !

3 Respostas

dudaskank

olá

bom, pra começar, seria interessante executar esse seu código em uma outra thread, pois senão não haveria como atualizar a nova janelinha com a barra de progresso. dá uma pesquisada em threads…

pra colocar a janelinha, vc pode criar um JDialog e colocar a sua progress bar nela, e ir atualizando. porém eu ainda colocaria apenas um JLabel com a mensagem “Aguarde…” hehehehe…

dê um show no início, começa sua pesquisa e, no fim, dispose() nele.

aqui tem uma seção do tutorial da sun sobre diálogos, acho que será útil: http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html

flw, espero que ajude

A

Ola Amigo tente isso

class Roda extends Thread
{

public void run ()
{

jprogressbar.setidenterminade(true);            {

//GOSTARIA QUE A MINHA JANELA DE PROGRESSBAR ARRANCASSE NESTE PONTO

String sql_query = "select * from tab1where cliente = ? ;

try

{

Class.forName(“com.ibm.as400.access.AS400JDBCDriver”);

Connection connection = DriverManager.getConnection(“jdbc:as400:ipadress/DB,username,password);
PreparedStatement prepared_statement = connection.prepareStatement(sql_query);
             prepared_statement.setString(1, Texto1.getText());
             ResultSet rs = prepared_statement.executeQuery(); 
      
           
         while( rs.next())

             { 

              System.out.println(rs.getString(1)); 
              
                
             }
              else
             { } ;
            
             }
             catch (Exception ex)
             {
              ex.printStackTrace();
             }
//GOSTARIA QUE A MINHA JANELA DE PROGRESSBAR ENCERRASSE NESTE PONTO

jprogressbar.setindeterminte(false);

jprogressBar.setvisibile(false);

}

};

depois no evento do botao ou do ActionListener
coloque assim

Roda r = new Roda();
r.start();

espero que ajude.

Allan_BSO

Use isso aqui:

progressMonitor = new ProgressMonitor(ProgressMonitorDemo.this, "Running a Long Task", "", 0, task.getLengthOfTask());

Em caso de dúvida consulte o seguinte link: http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html

Abraços

:wink:

Criado 11 de agosto de 2006
Ultima resposta 18 de out. de 2008
Respostas 3
Participantes 4