Não consigo adicionar o resultado da procura ao JPanel

Pessoal,

Estou tentando fazer um sistema de busca onde existe um JInternalFrame com 3 panels nele. O NORTH é os campos de busca, o CENTER são é o botão de Procurar e o SOUTH é o resultado da busca.
O botão Procurar starta o actionPerformed fora da classe do JInternalFrame e chama uma outra classe q se encarrega de procurar no banco e retornar um JScrollPane contendo os dados.
Só que não aparece o resultado da busca. Alguém pode me ajudar? Eis o código:

Classe ProcFuncionario.java

 public class ProcFuncionario extends JInternalFrame implements ActionListener {
 
 	private static final long serialVersionUID = -1237537304008263064L;
 	
 	private JLabel lblNome;
 
 	private JTextField txtNome;
 	
 	private JLabel lblRG;
 
 	private JTextField txtRG;
 	
 	private JLabel lblCPF;
 	 
 	private JTextField txtCPF;
 
 	private JButton bProcurar;
 
 	private JPanel resultadoProcura;
 	
 	private JPanel botoes;
 	
 	private JPanel form;
 
 	public ProcFuncionario(){
 		super("Procurar Funcionário",true,true,true,true);
 		this.setSize(500, 150);
 		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
 		this.getContentPane().setLayout(new BorderLayout());
 		
 		lblNome = new JLabel("Nome");
 		txtNome = new JTextField("");

 		lblRG = new JLabel("RG");
 		txtRG = new JTextField("");
 		
 		lblCPF = new JLabel("CPF");
 		txtCPF = new JTextField("");
 
 		bProcurar = new JButton("Procurar");
 
 		bProcurar.addActionListener(this);
 
 		form = new JPanel(new GridLayout(3, 2));
 
 		txtNome.requestFocus();//mantem o focus no nome
 		
 		
 		form.add(lblNome);
 		form.add(txtNome);
 		form.add(lblRG);
 		form.add(txtRG);
 		form.add(lblCPF);
 		form.add(txtCPF);

 		botoes = new JPanel(new FlowLayout());
 		botoes.add(bProcurar);

 		resultadoProcura = new JPanel(new FlowLayout());
 		
 		this.getContentPane().add(form, BorderLayout.NORTH);
 		this.getContentPane().add(botoes, BorderLayout.CENTER);
 		this.getContentPane().add(resultadoProcura, BorderLayout.SOUTH);
 		
 	}
 
 	public void actionPerformed(ActionEvent e){

 		
 		if (e.getActionCommand().equals("Procurar")) {

 				resultadoProcura.add(
 				FuncionarioSQL.Procurar(txtNome.getText(),
														txtRG.getText(),
														txtCPF.getText()
														)
														);

 				this.getContentPane().add(resultadoProcura, BorderLayout.SOUTH);
 				
 			   JOptionPane.showMessageDialog(this, "OK");			

 		} else {
 			JOptionPane.showMessageDialog(this, "Cancelar");
 		}
 
 	}

 }
 

Classe que é chamada pelo ProcFuncionario e que retorna o JScrollPane com os resultados:

public class FuncionarioSQL {
	
	
	static final String JDBC_DRIVER = "org.hsqldb.jdbcDriver";        
	static final String DATABASE_URL = "jdbc:hsqldb:file:/caminho_do_banco/banco";
	static final String USERNAME= "sa";
	static final String PASSWORD= "";
    
    public static JScrollPane Procurar(String nome,
															String RG,
															String CPF
															){	 

    	final String DEFAULT_QUERY = "SELECT * FROM funcionario";
    	ResultSetTableModel tableModel = null;
    	JTable resultTable = null;
    	
		try {
			tableModel = new ResultSetTableModel( JDBC_DRIVER, DATABASE_URL,USERNAME, PASSWORD, DEFAULT_QUERY );
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		resultTable = new JTable( tableModel );

		JScrollPane scrollPane = new JScrollPane();
		
		scrollPane.setMaximumSize(new Dimension(640, 390));
		scrollPane.setPreferredSize(new Dimension(640, 390));
		
		scrollPane.getViewport().add( resultTable );
		//resultadoProcura.add( scrollPane);
    	
		return scrollPane;
    }
     
}

Pelo q eu percebi, ele até faz a consulta no banco e retorna o JScrollPane com os resultados, mas ele não consegue na volta adicionar ao this.getContentPane().add do metódo actionPerformed… o resultado. Alguém sabe pq?