Problema chamando JDialog a partir de outra Thread

galera tenho uma aplicação desktop que envia um arquivo a um servidor remoto qdo o usuário clica no botão Concluir Documento
dependendo da conexão de internet do usuário, este processo (envio do arquivo e resposta do servidor confirmando o recebimento) leva em torno de 6 segundos

durante esse processo, gostaria de exibir uma JDialog modal com um JProgressBar, para que o usuário veja q o processo está em andamento e a a plicação não parou.
Quando a aplicação desktop receber a confirmação do servidor, a JDialog deve sumir.

já consegui implementar esse esquema, mas o problema é que a JDialog não “pinta” o seu conteudo, fica tudo branco. Acho q tem algo haver com o método paint()… etc, mas não sei o que fazer pra que a JDialog desenhe os componentes.

obs: a JDialog é chamada a partir de outra thread para que a aplicação não pare, esperando o usuario fechar a dialog.

código relevante do controle que chama a Thread com a Dialog e envia o documento ao servidor

public void concluirDocumento(){
...
  Thread threadBarraProgresso = new ThreadBarraProgressoIndeterminada();
   try {
                //barra de progresso para que o usuário veja que o processo está em andamento
                threadBarraProgresso.start();

                //envia o documento ao servidor remoto
                documentoService.enviarDocumento(usuarioService.getUsuario(), byte[] documento);

                //se chegar aqui, o server confirmou o recebimento, e a Thread é interrompida
                threadBarraProgresso.interrupt();

                JOptionPane.showMessageDialog(null, "Arquivo enviado com sucesso.");
   } //fim try
   catch(Exception e){
            //ocorreu algum erro, mas fecha a dialog da mesma forma
            threadBarraProgresso.interrupt();
            e.printStackTrace()
  }
}//fim metodo

e minha classe que extende Thread

public class ThreadBarraProgressoIndeterminada extends Thread{
    
    //inner class que extende JDialog
    DialogProgressBar dialogIndeterminateProgress;

    @Override
    public synchronized void run() {
        //inicia a Thread: instancia a JDialog e mostra
        dialogIndeterminateProgress = new DialogProgressBar(null, true);        
        dialogIndeterminateProgress.setVisible(true);        
    }
    
    @Override
    public void interrupt() {
        //finaliza a Thread e esconde a JDialog
        dialogIndeterminateProgress.setVisible(false);
        super.interrupt();                
    }

    //classe interna que extende JDialog
    private class DialogProgressBar extends JDialog{
        
        private JProgressBar progressBar;

        //construtor configura a JDialog e insere os compoenentes 
        public DialogProgressBar(Frame parent, boolean modal) {
            super(parent, modal);
            this.progressBar = new JProgressBar();
            this.progressBar.setBounds(-10, 0, 370, 20);
            //barra de progresso é indeterminada
            this.progressBar.setIndeterminate(true);        
            
            this.setLayout(new FlowLayout(FlowLayout.CENTER));   
            //adiciona JProgressBar no painel         
            this.getContentPane().add(progressBar);
            this.setResizable(false);
            this.setSize(370, 32);   
            this.setTitle("Enviando Documento, aguarde ...");                        
        }        
    }      
}

como disse, já funciona legal, só que a JDialog não desenha a JProgressBar no seu container (testei outros componentes como JLabel, mas tb não desenha) fica tudo branco.

alguém tem alguém tem alguma dica ??
valeu