Esiste questa classe
codice:
ProgressMonitorInputStream(Component parentComponent, Object message, InputStream in)
che permette apre automaticamente una JProgressBar mentre carica il flusso di dati una sorgente InputStream.

codice:
File f=new File("pippo");
FileInputStream fis=new FileInputStream(file);
ProgressMonitorInputStream pmi=new ProgressMonitorInputStream(this,"Read "+f.getName(),fis);
InputStreamReader in=new InputStreamReader(pmi);

/*L'attivita' deve trovarsi all'interno di un thread così da rendere possibile l'inserimento nella JTextArea senza bloccare tutta la grafica.*/

Thread readThread=new Thread(){
public void run(){
try{ 
JTextArea tx=new JTextArea)=;
String line="";
while( (line=in.readLine())!=null){
textArea.append(line+"\n");
}
in.close();
    }
}catch(IOException r){}
}
readThread.start();
Dovrebbe funzionare