Ola pessoal. Estou com um probleminha meio bobo.
Ta tudo funcionando, não é nenhum erro de compilação ou problema grave.
O que acontece é o seguinte. Fiz um jar que copia os arquivos para uma unidade mapeada em outro estado. Ele copia o arquivo belezinha, porem não consigo fazer com que o contador seja atualizado na tela. Na verdade a tela fica travada até acabar a copia dos arquivos, quando acaba a copia dos arquivos é que ele atualiza a tela.
Como faço pra ele atualizar a tela a cada termino da copia? O comando ta certo coloquei uma saida no prompt pra testa, a saida aparece, somente a interface grafica que fica travada mesmo ate acaber a copia.
private void copiarAutos() {
int cont = 0;
//Copiar arquivo para pastaDestino
for (String arquivoAtual : arquivosOrigem) {
File origem = new File(arquivoAtual);
File destino = new File(enderecoDestino + "\\" + arquivoAtual.substring(arquivoAtual.lastIndexOf("\\"), arquivoAtual.length()));
System.out.print("Copiando: " + origem.getName() + " > " + destino.getName() + " - ");
try {
Arquivo.copyFile(origem, destino);
} catch (IOException ex) {
setErro("Não foi possível enviar o auto!" + ex.getMessage());
break;
}
if (destino.exists()) {
//Deletar origem do arquvo
if (!origem.delete()) {
setErro("Não foi possível apagar o arquivo de origem!");
break;
} else {
System.out.println(" OK");
}
} else {
setErro("O arquivo não foi copiado corretamente");
break;
}
atual.setText(++cont + "");
atual.updateUI();
painel.updateUI();
System.out.println("CONTADOR: " + cont);
}
mensagem = "Autos exportados com sucesso!";
JOptionPane.showMessageDialog(getContentPane(), mensagem, "Concluído!", JOptionPane.INFORMATION_MESSAGE);
exit();
}
public static void copyFile(File source, File destination) throws IOException { if (destination.exists()) destination.delete(); FileChannel sourceChannel = null; FileChannel destinationChannel = null; try { sourceChannel = new FileInputStream(source).getChannel(); destinationChannel = new FileOutputStream(destination).getChannel(); sourceChannel.transferTo(0, sourceChannel.size(), destinationChannel); } finally { if (sourceChannel != null && sourceChannel.isOpen()) sourceChannel.close(); if (destinationChannel != null && destinationChannel.isOpen()) destinationChannel.close(); } }