GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
Duvida como setar na jatble
Índice dos Fóruns
»
Java Básico
Autor
Mensagem
25/03/2011 07:13:47
Assunto:
Duvida como setar na jatble
AnDrOiDe
Java Ninja
Membro desde: 30/10/2009 10:34:24
Mensagens: 263
Localização: Santo Andre-Capital-sp
Offline
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)
Tudo Deveria se Tornar Possível o Mais simples, Mas não simplificado !!!
25/03/2011 07:33:54
Assunto:
Re:Duvida como setar na jatble
Scoobydoo
JavaEvangelist
Membro desde: 19/01/2010 14:22:47
Mensagens: 429
Localização: Gaspar
Offline
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; }
Site pessoal :
http://www.likenerd.com.br
25/03/2011 08:06:33
Assunto:
Re:Duvida como setar na jatble
jrbilll
Debugger
Membro desde: 22/03/2011 10:12:30
Mensagens: 68
Offline
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:
public void carregarTabela() { ControladorFornecedor controle = new ControladorFornecedor(); Vector<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)); } }
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:
public Vector<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; }
E aqui a classe fornecedor com os getters e setters:
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; } }
Bacharél em Ciência da Computação
Desenvolvedor de Sistemas
Auditor de Sistemas
25/03/2011 10:34:37
Assunto:
Duvida como setar na jatble
luizunim
What is classpath?
Membro desde: 24/03/2011 05:49:40
Mensagens: 7
Offline
//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));
This message was edited 2 times. Last update was at 25/03/2011 13:28:37
Luiz Carneiro
baicharel em sitemas de informação
Índice dos Fóruns
»
Java Básico
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team