Pessoal, boa tarde!
Preciso de uma ajudar de vocês, estou utilizando o SwingWorker para que quando o usuário aperte em um botão executa certa ação através de uma Thread, até ai ok, só que se o usuário aperta o botão novamente quando uma já está em execução ele roda uma outra, portanto fica rodando 2 Threads ao mesmo tempo. Como que faço para que se uma Thread já esteja em execução não possa ser executa outra até o fim da que está rodando?
Eu executo o código abaixo no botão:
Worker a = new Worker();
a.execute();
E esse o SwingWorker:
static class Worker extends SwingWorker<Void, Void> {
@Override
protected void done() {
System.out.println("done");
}
@Override
protected Void doInBackground() {
try {
System.out.println("working");
Thread.sleep(5000);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}