Estou com um problema ao tentar utilizar o swing worker, na verdade não sei se ele a melhor saida para o que preciso:
Tenho uma tela que faz conexão com uma NF-e, e nessa tela coloquei eu tenho uma espera de ate 3 minutos(Sim o tempo é grande mas tenho clientes com 256mb de ram ai ja viu né) para executar todo o processo de comunição com a sefaz, etc.
Estou tentando colocar um contador de 180 segundos correndo em paralelo, para mostrar ao usuario que o processo esta em execução.
Ate então tenho o seguinte:
if (e.getActionCommand().equals("Gerar NF-e")) {
worker.start();
EnviaNFE();
ativo=false;
}
Object doWork() {
for (int x = 0; x <= 180; x++) {
m.Sleep(1000);
updateContador(x);
if (ativo==false) {
dispose();
}
}
return "";
}
void updateContador(final int i) {
Runnable atualiza = new Runnable() {
public void run() {
jtfTempoCorrente.setText(i + " segundos.");
}
};
SwingUtilities.invokeLater(atualiza);
}
Gostaria que enquanto o metodo de envio da NF-e fosse executado o contador fosse incrementando para que o usuário não ache que a tela travou.
Obrigado.