Duvida com jframe

tenho uma aplicacao que executa uma thread
e fica esperando um determinado status

quando acontece esta situacao ela precisa abrir um jframe ou jdialog
exibir ele e executar uma serie de procedimentos
ja que esta jframe ou jdialog ira mostrar os passos em execucao…

porem eu primeiro preciso mostrar a jframe
e em seguida ir mostrando os passos…

hoje eu faco o seguinte:

frame.setvisible(true)

so que quando eu faco isso ela fica presa eu queria que ela mostrasse e continuasse a executar os outros passos do meu metodo
como eu faria isso:

O problema é que a thread principal, que normalmente é responsável por desenhar as janelas(manter elas funcionando, clicáveis, etc) está parada esperando por alguma coisa.

Tu tens duas opções, ou atualizar suas telas na mesma rotina que executa o serviço pesado… ou criar uma nova thread que monitora esse serviço pesado e atualizar os valores das janelas.

Ou seja:
1 thread executa o serviço
1 thread que faz analise do status das rotinas rodando na thread anterior, e atualiza as telas
1 thread que é responsavel por desenhar as telas(normalmente a thread principal)

Lembre-se de ter o cuidado de não passar muito tempo em loops que fazem pequenas verificações, pois isso consome muita CPU.
Ou seja, evite algo tipo isso:

public void run(){ while(true){ if(rotinaPesada.estaPronta) break; } fazAlgumaCoisaDepoisQueTermina(); }

Normalmente há boas maneiras de evitar isso.(como disparar eventos que acordam outras threads)