Rodar um GIF como um progressBar [RESOLVIDO]

Olá, estou com problema pra utilizar um gif como progressBar, eu do um visible(true) toda vez que executo algum processo demorado, mais o gif não é atualizado enquanto o outro processo esta sendo executado, estou tentando amarrar de alguma forma este gif a uma thread, mais não estou conseguindo, será que alguem tem algum exemplo que possa me ajudar?

Agradecido desde já.

Qualquer processo longo deve ser delegado a uma thread (usualmente uma SwingWorker). Se o processo longo ficar na mesma thread do Swing, tudo (inclusive os gifs animados) ficará parado e não será atualizado corretamente.

Olá entanglement, vlw pela resposta, tenho problema para executar esse processo em uma outra thread, pois esse processo atualiza alguns componentes de tela, e acaba gerando exception (Thread safe), estou tentando usar o invokeAndWait, mais mesmo assim ocorre os erros. Se alguem tiver algum exemplo para me ajudar ficarei agradecido.

O cara que atualiza os componentes de tela deve usar invokeLater, não invokeAndWait.

Exemplo:

SwingUtilities.invokeLater (new Runnable() {
     public void run() {
          textArea.setText (String.format ("Esta eh a %d vez que passou por aqui", vez));
     }
 });

entanglement sua resposta me ajudou muito, o painel onde é exibido o gif já aparece na hora certa, porem o gif parece que não atualiza, ele aparece na tela mais não funciona a animação…vlw pela força

Estou usando esta função para executar meu processo demorado, porem parece q msm assim a tela fica congelada, estou usando a função corretamente??

SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                processarOperacao();
            }
        });

Não, é a operação lenta que tem de ficar em uma thread separada, e as coisas que ela precisa fazer (como atualizar um label ou um JTable) é que devem ser invocadas via invokeLater. invokeLater força o código que está no método run a rodar na thread do Swing.

Consegui resolver o problema, no processo principal usei SwingWorker, vlw pela ajuda entanglement.

abrç