[Ajuda] Execuções Dinamicas

Olá gente,
Estou desenvolvendo um trabalho em que executa vários algoritmos do problema do caixeiro viajante.
Consegui desenvolver esses algoritmos o meu problema é que por exemplo estou executando o Algoritmo de Força Bruta e quando executo esta travando meu jFrame e a aplicação enquanto ele não termina.

Gostaria de saber se é possível pelo Swing eu deixa meu programa mais dinâmico?
Seria mesmo quando está executando qualquer outro algoritmo o usuário tenha liberdade no programa(poder aperta 1 botão pause) .

Obrigado

Pesquise sobre Threads.

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html