Diferenca entre SwingWorker e EventQueue

Boa tarde.

Qual seria a diferenca entre essas duas classes?

Direto da API:

http://docs.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html
SwingWorker: classe destinada a executar, numa thread dedicada, tarefas demoradas que exijam interação com a interface gráfica.

http://docs.oracle.com/javase/6/docs/api/java/awt/EventQueue.html
EventQueue: classe que enfileira e despacha eventos da interface gráfica.

[quote=roger_rf]Direto da API:

http://docs.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html
SwingWorker: classe destinada a executar, numa thread dedicada, tarefas demoradas que exijam interação com a interface gráfica.

http://docs.oracle.com/javase/6/docs/api/java/awt/EventQueue.html
EventQueue: classe que enfileira e despacha eventos da interface gráfica.[/quote]
Ok, o SwingWorker tá tranquilo de entender.

O EventQueue executa processos numa thread diferente? Não deixando a tela swing travar?

Estou tendo um problema engraçado.

Tenho dos SwingWorker na minha aplicação.

Em uma máquina, quando inicio um SwingWorker posso também disparar outro SwingWorker que funciona normalmente.

Em outro computador, quando inicio um SwingWorker, outro SwingWorker não inicia, parece que a tela fica travada.

Em um computador funciona, em outro não.

O SwingWorker é a maneira recomendada para executar tarefas demoradas numa thread diferente. O EventQueue existe para gerenciar o processamento de eventos do Swing, não é função dele evitar o “travamento” da interface gráfica. Normalmente você não instancia EventQueue, o costumeiro é apenas enfileirar eventos para execução via EventQueue.invokeAndWait() ou EventQueue.invokeLater().

Infelizmente, usar múltiplas threads costuma ser trabalhoso (principalmente em programas gráficos), e nesse ponto o Swing não é exceção. Sem estudar seu código, não tenho como apontar de forma imediata o que está travando sua interface gráfica. A Oracle oferece documentação muito boa sobre o SwingWorker, creio que ela poderá ajudá-lo a resolver seu problema:
http://docs.oracle.com/javase/tutorial/uiswing/concurrency/simple.html
http://docs.oracle.com/javase/tutorial/uiswing/concurrency/interim.html