ProgressBar não dispara

Gostaria de mostrar uma progress bar rodando enquanto um processo demorado de geração de PDF ocorre, peguei e mudei uns exemplos daqui mesmo mas a progressbar fica parada:
A bar:

public class ImportProgress extends JDialog { public ImportProgress() { this.setTitle("Gera Relatorio"); setModal(false); JProgressBar progress = new JProgressBar(); progress.setIndeterminate(true); progress.setSize(480,20); getContentPane().add(progress); pack(); this.setLocationRelativeTo(null); } }
E o código onde eu chamo essa bar:

try{
          final ImportProgress p = new ImportProgress();
                     p.setVisible(true);
                     SwingWorker<?, ?> worker = new SwingWorker<Object, Object>(){
                         @Override
                         protected Object doInBackground() throws Exception {
                        	 EventQueue.invokeLater(new Runnable() { @Override  public void run() {
              					try {
                	            gerarPDF();
              					} catch (Exception exc) {
        							// TODO Auto-generated catch block
        							exc.printStackTrace();
        						}             					
             	  					     }
             	  					    }
             	  					);
                	       return null;     
                         }
                         @Override
                         protected void done() {
                              p.setVisible(false);
                         }
                    };
                    worker.execute();
                	
                	 }catch(Exception ex){
                JOptionPane.showMessageDialog(null,"Erro na Geração de PDF!"); 
                			ex.printStackTrace();
                			return;
                 }

Agradeço qualquer ajuda!

posso estar falando besteira, mas vc nao deveria usar o getValue() + n para aumentar o valor da progressbar?

Pelo que eu vi aqui mesmo, isso não é necessário… eu nem saberia quem é N, o meu processamento( quando chamo o método gerarPDF()), vai de 1 a 50 segundos de duração, dependendo do que foi escolhido não tem tempo definido.Só quero poder mostrar a barra correndo de um lado para o outro até terminar, mas sempre trava.

Obrigado por qualquer ajuda.

Eu peguei o código desse tópico aqui:
http://www.guj.com.br/java/48799-exemplo-de-jprogressbar

Mas sempre trava! :?

Iron,Vini ou alguém tem alguma dica para fazer a barra aparecer?Mesmo que de outro modo… :cry:

Simplifiquei o meu código:

 final ImportProgress p = new ImportProgress();
 SwingWorker<?, ?> worker = new SwingWorker<Object, Object>(){                    	
                         @Override
                         protected Object doInBackground() throws Exception {                        	
                        	 p.setVisible(true);
                	            gerarPDF();              					
                	       return null;     
                         }
                         @Override
                         protected void done() {
                        	 p.dispose();                        	
                         }
                    };
                    worker.execute();

Agora funciona…mas a barra nunca pára!Fica andando direto! :x
Estou errando em que parte?

Tente fazer assim:

new Thread(new Runnable() {
     @Override
     public void run() {
          ImportProgress ip = new ImportProgress();
          try {
               ip.setVisible(true);
               gerarPDF(); 
               ip.dispose();
          } catch (Exception e) {
               ip.dispose();
               JOptionPane.showMessageDialog(null, e.getMessage(),"Erro",JOptionPane.ERROR_MESSAGE);
          }
     }
}).start();

Desculpe mas não conheço muito da classe SwingWorker que vc esta usando =/
Por isso sugeri esse outro modo

Eu uso a seguinte thread.

class ProgressBarThread extends Thread {
        @Override
         public void run() {
             jProgressBar1.setVisible(true);
             jProgressBar1.setIndeterminate(true);//Começa a correr a barra
             jProgressBar1.setStringPainted(true);
             jProgressBar1.setString("Salvando...");}
         public void interrupt(){
             jProgressBar1.setVisible(false);
             jProgressBar1.setIndeterminate(false); // para a barra
             jProgressBar1.setStringPainted(false);
             jProgressBar1.setString("");}}

ai eu chamo

ProgressBarThread TP = new ProgressBarThread();
                TP.start(); // para INICIAR 
                //TP.interrupt(); //para PARAR

sempre funciona…lol

Galera, muito obrigado pela ajuda!
A dica do Margel Douglas funcionou sem erros! :smiley: :smiley: :smiley: