Duvida como setar na jatble

Galera,

A duvida seria o seguinte tenhu uma jtable que nela todos os resultados, apos fazer uma consulta com o nome do cliente apareceria.

Então essa consulta seria qq eu digitar um nome ANDRE ele setaria todos os ANDRE que ele econtrou e monstraria na JTatble…

Alguem teria como me ajudar!

(obs: ja esta tudo funfando)

Defina uma função KeyReleased no seu Campo de Texto…

Depois, implemente como no exemplo…
Controller:

clientes = new ArrayList<Classes.Cliente>();
        Cliente cliente = new Cliente();
        cliente.setNome(CampoBuscaCliente.getText());
        clientes = dao.CarregaTabCliente(cliente);
        int x = 0;
        DefaultTableModel modelo = (DefaultTableModel)TBuscaCliente.getModel();
        modelo.setNumRows(0);
        while (x < clientes.size()){
            // Configura a Jtable para receber os dados.
            TBuscaCliente.getColumnModel().getColumn(0).setPreferredWidth(1000);
            TBuscaCliente.getColumnModel().getColumn(1).setPreferredWidth(1000);
            // popula o JTable.
             modelo.addRow(new Object[] { clientes.get(x).getNome(),  clientes.get(x).getCodigo()} );
              x++;
        }

DAO

 public static ArrayList<Cliente> CarregaTabCliente(Cliente cliente){
                ArrayList<Cliente> ListaCliente = new ArrayList<Cliente>();
                String sql;
           try {
                Class.forName(driver); //Carrega o driver
               //Obtém a conexão com o banco
               Connection conn = DriverManager.getConnection(str_conn, usuario, senha);
               //Cria um statement para podermos mandar um SQL para o banco
               Statement stmt = conn.createStatement();
               //Mandamos o SQL para o banco e obtemos um ResultSet
               if (cliente !=null){//Não esqueça de botar essa restrição.... Senão pode dar nullpointer
               sql = "Select * CLIENTE WHERE  NOME_CLIENTE LIKE '%"+cliente.getNome()+"%'E";
               }else{
               sql = "Select * FROM CLIENTE";
               }
               ResultSet rs = stmt.executeQuery(sql);
               //Percorrendo o ResultSet e obtendo os valores do banco

               while (rs.next()){
                      Classes.Cliente carregarcliente = new Classes.Cliente();
                      carregarcliente.setCodigo(Integer.parseInt(rs.getString("CD_CLIENTE")));
                      carregarcliente.setNome(rs.getString("NOME_CLIENTE"));
                      ListaCliente.add(carregarcliente);
               }
              }
        catch (ClassNotFoundException ex) {
             System.out.println("Não foi possível carregar o driver.");
             ex.printStackTrace();
             return ListaCliente;
        }
        catch (SQLException ex) {
             System.out.println("Problema com o SQL");
             ex.printStackTrace();
               return ListaCliente;
       }
      return ListaCliente;
  }

Cria o método carregartabela() que fará a pesquisa, e no actionperformed do botão “buscar” chama esse método, como segeu o exempo:

Método carregartabela() na camada de visualização:

[code]public void carregarTabela() {
ControladorFornecedor controle = new ControladorFornecedor();
Vector dados = controle.pesquisar(this.campoPesquisa.getText());
//obtem-se o modelo da tabela criada
DefaultTableModel dtm = (DefaultTableModel) jTable1.getModel();
int nLinhas = this.jTable1.getRowCount();

    for (int i = 0; i < nLinhas; i++) {
        dtm.removeRow(0);
    }
    for (int i = 0; i < dados.size(); i++) {
        dtm.addRow(dados.get(i));
    }
}[/code]

método pesquisar() na camada de controle:

public Vector<Vector> pesquisar(String campoPesquisa){ FornecedorDAO dao = new FornecedorDAO(); return dao.pesquisar(campoPesquisa); }

Método pesquisar() na camada de persistencia ou negócios:

[code]public Vector pesquisar(String campoPesquisa){
java.sql.Connection con;
try {
Class.forName(“com.mysql.jdbc.Driver”);
con = java.sql.DriverManager.getConnection(
“jdbc:mysql://localhost/estoque”, “root”, “159753”);
} catch (Exception e) {
e.printStackTrace();
throw new java.lang.RuntimeException(“Erro ao conectar”);
}

    Vector<Vector> dados = new Vector<Vector>();


    String comando = "SELECT f.idfornecedor, f.datacad, f.telefone, f.fax, f.celular, "
            + "f.endereco, f.bairro, f.cidade, u.nome, f.cep, f.cpfcnpj, f.rg, f.email, f.site, f.obs, t.nome, "
            + "f.nome, p.nome "
            + "FROM fornecedor AS f INNER JOIN tipofornecedor AS t ON f.tipofornecedor_idtipofornecedor = t.idtipofornecedor "
            + "INNER JOIN uf AS u ON f.uf_iduf = u.iduf "
            + "INNER JOIN tipopessoa AS p ON f.tipopessoa_idtipopessoa = p.idtipopessoa "
            + "WHERE (f.nome) LIKE '" + campoPesquisa + "%' "
            + "ORDER BY f.nome";


    try {
        java.sql.Statement stmt = con.createStatement();
        java.sql.ResultSet rs = stmt.executeQuery(comando);

        while (rs.next()) {

            int idfornecedor = rs.getInt("f.idfornecedor");
            String nome = rs.getString("f.nome");
            String tipofornecedor = rs.getString("t.nome");
            String datacad = rs.getString("f.datacad");
            String telefone = rs.getString("f.telefone");
            String fax = rs.getString("f.fax");
            String celular = rs.getString("f.celular");
            String endereco = rs.getString("f.endereco");
            String bairro = rs.getString("f.bairro");
            String cidade = rs.getString("f.cidade");
            String uf = rs.getString("u.nome");
            String cep = rs.getString("f.cep");
            String cpfcnpj = rs.getString("f.cpfcnpj");
            String rg = rs.getString("f.rg");
            String email = rs.getString("f.email");
            String site = rs.getString("f.site");
            String tipopessoa = rs.getString("p.nome");
            String obs = rs.getString("f.obs");

            Vector registroLido = new Vector();

            registroLido.add(idfornecedor);
            registroLido.add(nome);
            registroLido.add(tipofornecedor);
            registroLido.add(datacad);
            registroLido.add(telefone);
            registroLido.add(fax);
            registroLido.add(celular);
            registroLido.add(endereco);
            registroLido.add(bairro);
            registroLido.add(cidade);
            registroLido.add(uf);
            registroLido.add(cep);
            registroLido.add(cpfcnpj);
            registroLido.add(rg);
            registroLido.add(email);
            registroLido.add(site);
            registroLido.add(tipopessoa);
            registroLido.add(obs);



            dados.add(registroLido);

        }
        stmt.close();
        con.close();
    } catch (java.sql.SQLException e) {
        throw new java.lang.RuntimeException(e.getMessage());
    }


    try {
        con.close();
    } catch (Exception e) {
        throw new java.lang.RuntimeException("erro ao fexar a conexão");
    }

    return dados;


}[/code]

E aqui a classe fornecedor com os getters e setters:

[code]public class Fornecedor {
String idfornecedor;
String nome;
int tipofornecedor;
String datacad;
String telefone;
String fax;
String celular;
String endereco;
String bairro;
String cidade;
int uf;
String cep;
String cpfcnpj;
String rg;
String email;

int tipopessoa;
String site;
String obs;





public String getBairro() {
    return bairro;
}

public void setBairro(String bairro) {
    this.bairro = bairro;
}

public String getCelular() {
    return celular;
}

public void setCelular(String celular) {
    this.celular = celular;
}

public String getCep() {
    return cep;
}

public void setCep(String cep) {
    this.cep = cep;
}

public String getCidade() {
    return cidade;
}

public void setCidade(String cidade) {
    this.cidade = cidade;
}

public String getCpfcnpj() {
    return cpfcnpj;
}

public void setCpfcnpj(String cpfcnpj) {
    this.cpfcnpj = cpfcnpj;
}

public String getDatacad() {
    return datacad;
}

public void setDatacad(String datacad) {
    this.datacad = datacad;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getEndereco() {
    return endereco;
}

public void setEndereco(String endereco) {
    this.endereco = endereco;
}

public String getFax() {
    return fax;
}

public void setFax(String fax) {
    this.fax = fax;
}

public String getIdfornecedor() {
    return idfornecedor;
}

public void setIdfornecedor(String idfornecedor) {
    this.idfornecedor = idfornecedor;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getObs() {
    return obs;
}

public void setObs(String obs) {
    this.obs = obs;
}

public String getRg() {
    return rg;
}

public void setRg(String rg) {
    this.rg = rg;
}

public String getSite() {
    return site;
}

public void setSite(String site) {
    this.site = site;
}

public String getTelefone() {
    return telefone;
}

public void setTelefone(String telefone) {
    this.telefone = telefone;
}

public int getTipofornecedor() {
    return tipofornecedor;
}

public void setTipofornecedor(int tipofornecedor) {
    this.tipofornecedor = tipofornecedor;
}

public int getTipopessoa() {
    return tipopessoa;
}

public void setTipopessoa(int tipopessoa) {
    this.tipopessoa = tipopessoa;
}

public int getUf() {
    return uf;
}

public void setUf(int uf) {
    this.uf = uf;
}

}
[/code]

//eu uso este modelo aqui :

public void setCarregueDados(String Sql) {
        try {
            Conexao banco = new Conexao();// aqui é a conexao com o bando de dados
            ResultSet rs = banco.select(Sql);// aqui é o metodo responsavel por executar a sql no banco ele esta na classe conexao, e retornar um ResultSet
            ResultSetMetaData rsmd = rs.getMetaData();
            col = new String[rsmd.getColumnCount ()];//col e instanciado com a quantidade de colunas retornado da tabela
            for(int it = 0; it < rsmd.getColumnCount (); it++) {
		col[it] = rsmd.getColumnLabel (it + 1);//adiciona o cabeçalho da tabela
            }	
            vt = new Vector();
            while(rs.next ()) {
		Object[] row = new Object[rsmd.getColumnCount()];
		for(int it = 0; it < rsmd.getColumnCount (); it ++) {
                    row[it] = getValue(rs,rsmd,it);//adiciona celula por celula de dados da tabela no atributo row  													    
		}
                vt.add (row);//adiciona a linha inteira da tabela no vetor
            }
            lin = (Object[][])vt.toArray(new Object[0][0]);//adiciona o vetor no atributo lin que é uma matriz de Object[][]
            //Grade.setModel(new DefaultTableModel(lin,col)); 
        }
	 catch (SQLException sqle) {
		String st = "Erro ocorrido!" +
		"\n Codigo: " + sqle.getErrorCode () +
		"\n Menssagem: " + sqle.getMessage ();
		JOptionPane.showMessageDialog (null,st,"Erro",0);					  
	}
        //catch (ConnectException CEx){JOptionPane.showMessageDialog (null,CEx.getMessage(),"Erro",0);}
        //catch (SelectException SEx) {JOptionPane.showMessageDialog (null,SEx.getMessage(),"Erro",0);}
        catch (Exception sqlEx) {JOptionPane.showMessageDialog (null,"erro no metodo setCarregueDados = " + sqlEx.getMessage(),"Erro",0);}
    }

       //o metodo abaixo é apenas para os campos que contem datas

    private Object getValue(ResultSet rs, ResultSetMetaData rsmd, int col) throws SQLException {
	if((rsmd.getColumnType(col +1) == Types.TIMESTAMP) || (rsmd.getColumnType(col + 1) == Types.DATE)) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
            try {
                java.util.Date dt = sdf.parse(rs.getString(col + 1));
                sdf = new SimpleDateFormat("dd/mm/yyyy");                
		return sdf.format(dt).toString();
            }
            catch (ParseException pe) {return new String();}	
	} 
	return rs.getObject(col + 1);																				  
    }

//metodos de retorno 

public String[] getCol(){
        return col;
    }
    
    public Vector getVt(){
        return vt;
    } 

public Object[][] getLin(){
        return lin;
    } 

// e depois la no jtable voce pode chamar assim

Executar EX = new Executar();//meu setCarregaDados() esta nessa classe

Object[][] lin;
String[] col = EX.getCol();
lin = (Object[][])[b]EX.getVt().toArray(new Object[0][0]);   
jTable.setModel(new DefaultTableModel(lin,col)); //preenche o jtable

// ou direto assim

jTable.setModel(new DefaultTableModel(EX.getLin,EX.getCol));