Pesquisa

Pessoal,

Tenho um metodo que baseado em um jtextfield e um jbutton cria um jtable com os resultados do banco.
Assim cria o jtable com o resultado:

[code]public void pesquisar(){

	String sql = "SELECT CIDCODIGO AS CODIGO, CIDNOME AS NOME, CIDUF AS UF FROM CIDADE WHERE CIDNOME LIKE '%" +  txtPesquisar.getText()+ "%'";
	
	try
	{
		ResultSet query = Conexao.Query(sql, 1);
		ResultSetMetaData meta = query.getMetaData();
		int cc = meta.getColumnCount();
		
		header = new Vector();			
		for (int i = 0; i < cc; i++) {
			header.add(meta.getColumnName(i + 1));
		}
		
		data = new Vector();
		while (query.next()) {
			Vector row = new Vector();
			for (int i = 0; i < cc; i++) {
				row.add(query.getString(i + 1));
			}
			data.add(row);
		}
		
		jTable = new JTable(data, header);
		jTable.addMouseListener(this);
		JScrollPane scrollPane = new JScrollPane(jTable);
		scrollPane.setBounds(new Rectangle (5,50,350,150));
		Painel.add(scrollPane);
	}
	catch(Exception err)
	{
		JOptionPane.showMessageDialog(null, "Erro ao carregar pesquisa : " + err.getMessage());
	}
}[/code]

O problema:
Se eu tentar pesquisa pela segunda vez sem fechar a janela, o resultado é filtrado mas qdo se clica no jtable o resultado da pesquisa anterior permane por tras do atual sobreescrendo a pesquisa.

Entenderam?
Preciso de alguma forma recriar o jtable somente com os resultados da pesquisa atual, sem q ao clicar o resultado anterior fique transparecendo em cima do atual.
Tem alguma forma de resolver isso? se tem onde coloco esse codigo?

Grato

Julio