Ola Pessoal,
Estou em dúvida como fazer isso:
Tenho uma aplicação que gera diversos relatórios, para cada relatório existe uma classe que será uma thread mas um relatório só pode comecar a ser gerado depois que o outro terminou.
No ActionListener da GUI eu simplesmente faço algo assim:
btnProcessar.setEnabled(false);
try {
if(rbAnalitico.isSelected()) {
app.processaAnalitico();
while(app.getProcessing())
Thread.sleep(1000);
}
if(rbSintetico.isSelected()) {
app.processaSintetico();
while(app.getProcessing())
Thread.sleep(1000);
}
} catch (InterruptedException e1) {
e1.printStackTrace();
}
btnProcessar.setEnabled(true);
:arrow: O problema é por causa do loop para o Sleep que congela minha tela …
eu queria ter esse comportamento mas sem congelar a tela.
minha GUI já é um observer e cada thread é observable enviando mensagens pra eu acompanhar o processamento … talvez eu pudesse mudar o controle da geração para o método update() mas eu acho que vai ficar feio, existe alguma outra alternativa? Um pattern? :roll:
Obrigado
… vou ver o que faco aqui …