Duvida com JProgressBar

Pessoal como faço para atribuir o tempo de uma copia de arquivos ao uma JProgressBar

[code]import javax.swing.;
import java.awt.
;
import java.awt.event.*;

public class Teste extends JFrame
{
private Timer timer;
private int cont=0;
private JProgressBar jp;

public Teste()
{
	super("Teste");
	Container p=new Container();
	p=getContentPane();
	p.setLayout(null);
	setBounds(250,200,300,200);
	
	jp=new JProgressBar(JProgressBar.HORIZONTAL,0,20);
	jp.setValue(cont);
	jp.setBounds(15,50,250,10);
	p.add(jp);
	timer = new Timer(1 * 200, new ActionListener() {
		public void actionPerformed(ActionEvent ev) {
			jp.setValue(cont++);
			jp.updateUI();
		
			if(jp.getValue()==20)
			{
				timer.stop();
				setVisible(false);
			}
		}
	});
  	timer.start(); 
  	setVisible(true);       
}
public static void main(String[] args) 
{
    new Teste();

}
}[/code]

esse codigo mostra uma JProgressBar em execução, mas gostaria de saber quais a mudanças devo fazer para q ela carregue conforme o processamento de algum processo, por exemplo uma copia de arquivos

obrigado

How to Use Progress Bars