Interação entre dois JFrames

Pessoal,

Estou precisando que uma tela preencha uma barra de progresso em outra tela…

Vou explicar especificadamente:

Tenho uma tela muito simples, é um JPanel com apenas um botão.
Esse botão vai abrir um outro Jframe com uma Jtable dentro de um Jscrollpane.
Acontece que esse outro JFrame demora um pouco pra abrir pois faz uma consulta pesada no banco e gera um relatório.
Então quando o usuário clica no botão o programa parece que está “travado” até abrir a outra tela, como os usuários são desesperados já saem fechando o programa e reclamando.

O que eu gostaria de fazer é colocar uma progressbar na tela que tem apenas o botão. Então ao abrir a outra tela com o relatório esta tela deveria ir preenchendo o progressbar conforme vai passando no while que monta o relatório.

Quanto ao progressbar é tranquilo, sei utilizá-lo, o meu problema é como vou preencher esse progressbar a partir de uma outra tela.

Pode ser algo simples mas não está claro pra mim.
Se puderem ajudar agradeço.

EDIT:
Para ilustrar melhor segue o “pseudocódigo” das telas:

[code]public class tela1 extends JPanel {

private JButton btn1;
private JProgressBar progressBar;

public telaRecorrencia() {
	add(retornarBtn1());
	add(returnProgressBar());
}

public JProgressBar returnProgressBar(){
	progressBar = new JProgressBar();
	progressBar.setBounds(43, 102, 146, 26);
	return progressBar;
}

	public JButton retornarBtn1() {
	
	btn1 = new JButton("Abrir tela");
	btn1.setBounds(43, 34, 146, 44);
	btn1.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
				//Abre a outra tela (tela2).
		}
	});
	return btn1;
}

}
[/code]

public class tela2 extends JFrame {
	
	private JScrollPane pane;
	
	public telaEventosRecorrencia() {
			add(getListaDeResultados());
	}

public JScrollPane getListaDeResultados() throws Exception {
	
		//Faz uma consulta abre um resultset
		while (rs.next()) {
			//monta relatorio e a Jtable e blablabla
			//Aqui eu gostaria de botar um contador ou algo assim pra carregar a progressbar na tela1
		}
}

djouuu. Para facilitar imagino que você possa fazer essa implementação com apenas uma tela. Para solucionar a questão da tela travando, basta você criar uma Thread para acessar o banco de dados.

Quanto ao progresse JProgressBar o seu tempo de carregamento será relativo, a depender do tempo de carregamento do banco. Porém para tal você poderá fazer uma média do tempo gasto, e avança-la conforme estimativa de conclusão.

caro amigo,
eu faria no seu primeiro jpanel (tela1) o seguinte;
public static JProgressBar p = null;

no seu método returnprogressbar

p = progressBar;

no seu segundo jpanel(tela2) o seguinte:

tela1.p o tratamento que vc quier