Is this doable? final DownloadFile file; new Thread(new Runnable(){ public void run(){ while (anotherFile()) { file = new DownloadFile(URL, LOCAL_DIR, nextFile()); } } }).start(); new Thread(new Runnable(){ public void run(){ lblProgress.setText("Bytes received for "+file.getFileName()+": "+file.getBytesReceived()); } }).start();