[Dúvida] JProgressBar + FileChanel

Bom dia pessoal, vou explicar a minha dúvida.
O meu sistema esta pronto, ele copia um diretório ou arquivo para outro diretório. O método que faz a cópia é o que se segue: (visto aqui no GUJ e adaptado)

[code] public void copiaArquivo(File f1, File f2) throws FileNotFoundException, IOException
{
FileChannel sourceChannel = null;
FileChannel destinationChannel = null;

try {  
	sourceChannel = new FileInputStream(f1).getChannel();  
	destinationChannel = new FileOutputStream(f2).getChannel();  
	sourceChannel.transferTo(0, sourceChannel.size(), destinationChannel);  
    } 
finally {  
        if (sourceChannel != null && sourceChannel.isOpen())  
             	sourceChannel.close();  
       if (destinationChannel != null && destinationChannel.isOpen())  
              	destinationChannel.close();  
    }   
}[/code]

Agora estou com o seguinte problema: Como que eu faço uma barra de progresso, indicando a porcentagem de transferencia nesse caso?
Lembrando que a cópia esta sendo feita, apenas preciso mostrar essa barra.

Você pode, em vez de usar um único transferTo (que por definição não deixa você saber quanto foi transferido), executar N vezes o transferTo com um valor menor de comprimento e um offset. Por exemplo, você pode chamar transferTo com um valor de 10 MB de cada vez, se estiver trabalhando com discos (tipicamente um disco transfere uns 15 MB por segundo). Então você pode atualizar seu Progress Bar. Deixo para você o cálculo do offset e o tratamento do último bloco.

[quote=entanglement]Você pode, em vez de usar um único transferTo (que por definição não deixa você saber quanto foi transferido), executar N vezes o transferTo com um valor menor de comprimento e um offset. Por exemplo, você pode chamar transferTo com um valor de 10 MB de cada vez, se estiver trabalhando com discos (tipicamente um disco transfere uns 15 MB por segundo). Então você pode atualizar seu Progress Bar. Deixo para você o cálculo do offset e o tratamento do último bloco.
[/quote]

Excelente idéia, não tinha pensado nisso.

Se não aparecer mais idéias, vou usar essa.
obrigado.