JTable + Select * from tabela where like 'arg%';

E ai galera do forum…

talvez alguem possa me ajudar.

Tenho uma janela que busca os países cadastrados… quando ela é aberta, é executado um select * from pais, ela lista todos os paises, porem eu gostaria de quando o usuario digitar algo no JTextField, e clicar no buscar, ele realize a consulta, até ai consegui, só nao sei atualizar o Table, com o resultado da busca…

import java.util.Vector;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ButtonGroup;
import java.sql.ResultSet;
import javax.swing.table.DefaultTableModel;
import javax.swing.ListSelectionModel;
import javax.swing.table.TableColumn;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import javax.swing.table.*;

public class TBusPais extends NTela{
	
	public TBusPais(){
		setTamanho(50);
		setPosicao("C","C");
		setTitle("Buscar Pais....");
		setConsulta();
		setConstroiCampos();

       	jtLista.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jtListaMouseClick(evt);
            }
		});
		
		btnBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				btnBuscarClick();
    		}
		});

		
		setModal(true);
	}
	
	public void jtListaMouseClick(java.awt.event.MouseEvent evt) {
		Object strVCod = modelo.getValueAt(jtLista.getSelectedRow(), 0);
	   	String codStr = ""+strVCod;
	   	int cod = Integer.parseInt(codStr);
       	TCadPais.setSelecionado(cod);
    }

	public static void main (String [] args){
	NPostgre.Conecta(NInfo.servidor,NInfo.banco,NInfo.user,NInfo.senha);
		TBusPais tela = new TBusPais();
		tela.show();
	NPostgre.Desconecta();
	}
	
	public void setConstroiCampos(){
		
		grTipo.add(rbNome);
		grTipo.add(rbSigla);
		rbNome.setSelected(true);
		
		tfBusca.setDocument(new NLimita("TXT",50));
		
		
		jtLista			= new JTable(modelo);
		jtLista.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		jtLista.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
		
		//Largura das Colunas
		jtLista.getColumnModel().getColumn(0).setPreferredWidth(NTela.getLargura(tela,8));
		jtLista.getColumnModel().getColumn(1).setPreferredWidth(NTela.getLargura(tela,10));
		jtLista.getColumnModel().getColumn(2).setPreferredWidth(NTela.getLargura(tela,100));
		
	 	//Alinhando as Colunas
	 	jtLista.getColumnModel().getColumn(0).setCellRenderer(NTable.setAlinha("C"));
 		jtLista.getColumnModel().getColumn(1).setCellRenderer(NTable.setAlinha("C")); 	
 		
				
		jspScrolLista 	= new JScrollPane(jtLista);
		jspScrolLista.setBounds(NTela.getLargura(tela,col1),NTela.getAltura(tela,base+18),NTela.getLargura(tela,lar3),NTela.getAltura(tela,alt1+35));
	
		cont.add(lbTipo);
		cont.add(rbNome);
		cont.add(rbSigla);
		cont.add(tfBusca);
		cont.add(jspScrolLista);
		cont.add(btnCancel);
		cont.add(btnOk);
		cont.add(btnBuscar);
		
		
		
	}

	public void setConsulta(){
		setConsulta(0);
	}	
	
	public void setConsulta(int tipo){
	ResultSet pesquisa;
	Vector vetCod 	= new Vector();
	Vector vetNome 	= new Vector();
	Vector vetSigla = new Vector();
	String strCampo 	= "";
	String strConsulta 	= "";
	String strValor 	= tfBusca.getText();
	
	if(rbNome.isSelected() == true){ strCampo = " NOME ";}
	else if (rbSigla.isSelected() == true){ strCampo = " SIGLA ";}
	
	if(tipo == 0){ strConsulta = "SELECT * FROM PAIS";}
	else{ strConsulta = "SELECT * FROM PAIS WHERE NOME LIKE '"+strValor+"%'";	}
	
	
		try{
			pesquisa = NPostgre.Consulta(strConsulta);	
			while(pesquisa.next()){
				vetCod.add(pesquisa.getString("Codigo"));
				vetNome.add(pesquisa.getString("Nome"));
				vetSigla.add(pesquisa.getString("Sigla"));
			}
			vetCod.trimToSize();
			vetNome.trimToSize();
			vetSigla.trimToSize();
	
		}
		catch(Exception ex){ }
		
		vetTitulo = new String[]{"Cod","Sigla","Nome"};
		vetValores = new Object[vetCod.size()][3];
		
		for(int n=0;n<vetCod.size();n++){
			vetValores[n][0] = vetCod.get(n);
			vetValores[n][1] = vetSigla.get(n);
			vetValores[n][2] = vetNome.get(n);
		}
		
		modelo = new DefaultTableModel(vetValores,vetTitulo);
		
		
		
	
			
	}

	private void btnBuscarClick(){
		setConsulta(1);
			
		
	}
	
    private  JScrollPane jspScrolLista;
    private  JTable jtLista;
	Object[][] vetValores;
	String[]   vetTitulo;
   	private DefaultTableModel modelo;
    
   	private final int tela 			= 50;
	private final int base			= 10;
	private final int col1			= 5;
	private final int col2			= 20;
	private final int col3			= 30;
	private final int col4			= 50;
	private	final int lar1			= 15;
	private final int lar2			= 65;
	private final int lar3			= 90;
	private final int alt1			= 5;
	
	private NLabel lbTipo 			= new NLabel("Tipo:",col2,base,lar1,alt1,tela);
    private NTextField tfBusca		= new NTextField(col1,base+8,lar2,alt1,tela);
    private ButtonGroup grTipo 		= new ButtonGroup();
	private NRadioButton rbNome		= new NRadioButton("Nome",col3,base,lar1,alt1,tela);
	private NRadioButton rbSigla 	= new NRadioButton("Sigla",col4,base,lar1,alt1,tela);
	private NButton btnOk			= new NButton("Ok",100-22,base+70,lar1+5,alt1,tela);
	private NButton btnCancel		= new NButton("Cancelar",100-44,base+70,lar1+5,alt1,tela);
	private NButton btnBuscar		= new NButton("Buscar",col4+25,base+8,lar1+5,alt1,tela);

	
}

este é o metodo responsavel pela busca…

[code]
[b]
public void setConsulta(int tipo){
ResultSet pesquisa;
Vector vetCod = new Vector();
Vector vetNome = new Vector();
Vector vetSigla = new Vector();
String strCampo = “”;
String strConsulta = “”;
String strValor = tfBusca.getText();

if(rbNome.isSelected() == true){ strCampo = " NOME ";}
else if (rbSigla.isSelected() == true){ strCampo = " SIGLA ";}

if(tipo == 0){ strConsulta = "SELECT * FROM PAIS";}
else{ strConsulta = "SELECT * FROM PAIS WHERE NOME LIKE '"+strValor+"%'";	}


	try{
		pesquisa = NPostgre.Consulta(strConsulta);	
		while(pesquisa.next()){
			vetCod.add(pesquisa.getString("Codigo"));
			vetNome.add(pesquisa.getString("Nome"));
			vetSigla.add(pesquisa.getString("Sigla"));
		}
		vetCod.trimToSize();
		vetNome.trimToSize();
		vetSigla.trimToSize();

	}
	catch(Exception ex){ }
	
	vetTitulo = new String[]{"Cod","Sigla","Nome"};
	vetValores = new Object[vetCod.size()][3];
	
	for(int n=0;n<vetCod.size();n++){
		vetValores[n][0] = vetCod.get(n);
		vetValores[n][1] = vetSigla.get(n);
		vetValores[n][2] = vetNome.get(n);
	}
	
	modelo = new DefaultTableModel(vetValores,vetTitulo);
	
	
	

		
}

[/b][/code]

valew.

Já achei é sá mandar ele recarregar o modelo

jtLista.setModel(modelo);