Repaint e updateUi não funciona

Pessoal estou com o seguinte problema eu tenho um JFileChooser para salvar um arquivo e quando o cara clica em salvar eu abro JinternalFrame com uma JProgressBar e chamo Trhead.sleep(500) para atualizar a progrees.

Só que o problema que na hora que o cara clica em salvar o JfileChooser soma da tela mais fica um fundo cinza do tamanho do mesmo e não chego ver minha tela de progress em andamento so vejo ela quando acaba o preenchimento ja usei repaint() updateUI() no meu desktopPane mais nao adianta nada desde já grato

Coloca o teu progressBar dentro de uma Thread, pois senao tu nao vai conseguir fazer isso.

Assim tu abre um “processo” para o progress e outro segue no teu fileChooser

Na verdade, é o outro processo que deve estar numa thread.

A progress bar responde a eventos do Swing, que são processados na Thread da AWT.

Sempre que um botão é clicado, o código dos listeners é executado dentro dessa thread. Então, se esse código for lento demais, você vai notar que a aplicação congela, mostra telas em cinza, etc.

Para resolver esse problema, basta mover o código demorado para outra thread e, de lá, apenas mandar mensagens para os componentes se atualizarem. Assim a thread da AWT continuará processando eventos, seu trabalho será feito em outro lugar e seu progress bar será pintado normalmente.

A menos que o componente seja Thread-safe, é necessário que essas mensagens sejam enviadas para a fila da AWT, da seguinte forma:

EventQueue.invokeLater(new Runnable() { public void run() { barraDeProgresso.setValue(2); } }

Geralmente, os eventos thread-safe contém o seguinte texto em seu Java doc:
This method is thread safe, although most Swing methods are not. Please see Threads and Swing for more information.

Sobre esse assunto, vale a pena consultar:
Lesson: Concurrency in Swing da própria Sun. Aqui ele fala também da classe SwingWorker, que facilita esse trabalho de multi-threading e Swing.