Exibir componentes antes da Barra de Progressão

Pessoal… não soube como colocar a pergunta , mas a dúvida é a seguinte…

Tenho uma barra de progressão que entra em ação em um determinado processamento. A questão é…

Tenho JLabels para ocultar e exibir antes da barra entrar em ação, e o q acontece é o contrário.

Como faço para a barra entrar em ação somente após a exibição dos dados ?

Os procedimentos de exibição estão postados antes do bloco de execução da barra.

:oops:

O seu processamento está sendo executado no Event Dispatch Thread?
Caso afirmativo, você provavelmente não vai conseguir nem sequer incrementar sua barra de progresso.
Isso acontece porque os métodos de pintura são executados no mesmo Thread do seu processo. Ou seja, os métodos de pintura ficam na “fila” e somente depois que o seu processo acabar é que o thread vai estar livre para executa-los.

Se por outro lado, você executar sua operação lenta em um thread a parte, pode postar as operações de pintura no Event Dispatch Thread usando SwingUtilities.invokeLater(), e assim elas serão executadas quase que de imediato (dependendo do poder de processamento da máquina e de quão pesadas forem as operações dos outros threads concorrentes).

Creio que outra alternativa viável poderia ser o framework Foxtrot. Com ele você pode executar sua operação através de um método de uma classe estática chamada Worker que ele tem. Nesse caso, o framework se encarrega de despachar os eventos de pintura durante a sua operação (se não me engano).