JProgressBar com consulta em banco em um tempo não determinado

5 respostas
I

Olá galera, gostaria de saber, como realizar JProgressBar, mas sem determinar o tempo.
Preciso colocar uma barra ao executar uma consulta no banco, mas essa consulta sempre varia o tempo.

Obrigado galera.

Atenciosamente.

Código do botão da consulta.

bConsulta = new JButton(Consulta);

bConsulta.addActionListener(

new ActionListener()

{
public void actionPerformed(ActionEvent e)
					{
						try {
						 //Realizar consulta
							TabelaDAO dao = new TabelaDAO();
							resultado = dao.geracao();
						        String aviso = "Geração Terminou";					   
			  		 	
								}catch (SQLException exe) {	
								// TODO Auto-generated catch block
								JOptionPane.showMessageDialog(null,exe.getMessage());
								exe.printStackTrace();	
								}//fim do catch              
					   	}
							
					   }else ///Fim If de validação de data
					   		if(selectedValue == possibleValues[1]){
					   			textoArea.setText("Ok,Operação não realizada");					   			
					   		}			
		                
					} //
	        });

5 Respostas

lele_vader

Existe uma forma de usar a progressbar de forma indeterminada, assim vai ficar aparecendo a barra sem a quantidade de tempo e você vai poder chamar o método para fechar o progressbar quando a sua consulta acabar.

Aqui um site que possa lhe ajudar

http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html

E

Se você não tem idéia de quanto tempo leva a consulta, então use um JProgressBar indeterminado.

http://docs.oracle.com/javase/6/docs/api/javax/swing/JProgressBar.html#setIndeterminate(boolean)

Passe o valor “true” para ligar o modo indeterminado, e quando a consulta acabar de ser efetuada, desligue o modo indeterminado (passe o valor false) e então sete o valor para 100%.

I

Obrigado galera.

Estou analisando, estou tentando usar, mas a porcentagem da barra sempre fica no 0%.

Ate,

lele_vader

O modo indeterminado não aparece a porcentagem.

Fica com uma animação que eu saiba.

Mostra o jeito que está fazendo.

I

Obrigado.
Segue a parte do código:

Thread roda = null,roda2;

JProgressBar prbConta = new JProgressBar();

prbConta.setMinimum(0);

prbConta.setMaximum(50);

prbConta.setStringPainted(true);
bConsulta = new JButton(Consulta);

bConsulta.addActionListener(

new ActionListener()

{
public void actionPerformed(ActionEvent e) 
		{ 
		    Executa a classe roda2
			 if (roda2 == null) {
				        roda2 = new roda();
						  roda2.start(); 
						}
		
		} //

});

//Classe no qual se encontra os metodos do progressbar

class roda2 extends Thread {

public void run() {

prbConta.setIndeterminate(true);
try { // try da Thread
	          int value = prbConta.getValue();
	          try { // try da consulta do banco 
	     	         TabelaDAO jlist = new TabelaDAO();
	     			 //Executa a query
	     			  list1 = jlist.ge();	      
	     			
	     	          // Atualiza a Barra de Progresso
	     	     		}catch (SQLException exe) {	
	     				// TODO Auto-generated catch block
	     				JOptionPane.showMessageDialog(null,exe.getMessage());
	     				//exe.printStackTrace();	
	     				contador = false; 
	     				}		     	     		
	     	     		prbConta.setValue(value + 1);  		
	          Thread.sleep(500);
	       } catch (InterruptedException ignoredException) {
	        }      
	
	      prbConta.setValue(100);
	    }
  }

Obrigado

Criado 5 de junho de 2012
Ultima resposta 5 de jun. de 2012
Respostas 5
Participantes 3