Popular JTable com dados do banco

1 resposta
Allexb10

Ola,
Gostaria de algun(s) exemplo(s) de como fazer para popular um jtable com dados buscados do banco.
Tenho varias classes prontas e varias telas prontas, tenho por exemplo essa tela:

package Formularios;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

@SuppressWarnings("serial")
public class FrmConsultaFuncionario extends JFrame{

	JTable textArea;
	JTextField texto;
	JButton btn;
	public FrmConsultaFuncionario() {
		Container c = getContentPane();
		FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
		c.setLayout(layout);

		textArea = new JTable(10, 20);

		btn = new JButton("Pesquisar");

		c.add(textArea);
		c.add(btn);

		setSize(350, 250);
		setVisible(true);
	}


	public static void main(String[] args) {
		JFrame frame = new JFrame("Tela de Consulta");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.add(new FrmConsultaFuncionario());
		frame.setPreferredSize(new Dimension(700,400));
		frame.pack();
		frame.setVisible(true);
	}

}

uma classe de servico:

package Servicos;

import Modelo.Vendedor;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class ServicoVendedor {

      private ServicoConexao conexao = new ServicoConexao();

    //Inserir dadis ba tabela 
    public void insert(Vendedor vendedor) throws SQLException {
        PreparedStatement pst =
                conexao.getConexao().prepareStatement("insert into vendedor"
                + "(codigo,codpessoa,codsetor) values (?,?,?)");
        vendedor.setCodigo(conexao.getGenerator("vendedor"));
        pst.setInt(1, vendedor.getCodigo());
        pst.setInt(2, vendedor.getCodPessoa());
        pst.setInt(3, vendedor.getCodSetor());
        pst.executeUpdate();
        
        pst.close();
        conexao.close();
    }
    
    //Alterar dados na tabela 
    public void update(Vendedor vendedor) throws SQLException{
        PreparedStatement pst = conexao.getConexao().prepareStatement
                ("update vendedor set codigo = ?,codpessoa = ?,codsetor =?"+
                "where codigo = ?");
        pst.setInt(1,vendedor.getCodPessoa());
        pst.setInt(2, vendedor.getCodSetor());  
        pst.setInt(3, vendedor.getCodigo()); 
        pst.executeUpdate();
       
        pst.close();
        conexao.close();
    }
    
    //Excluir registro a tabela vendedor
    public void delete(int codigo) throws SQLException{
        PreparedStatement pst = conexao.getConexao().prepareStatement
                ("delete from vendedor where codigo = ?");
        pst.setInt(1, codigo);
        pst.executeUpdate();
        
        pst.close();
        conexao.close();    
    }
    
     //Selecionar todos os dados da tabela vendedor
    public ArrayList<Vendedor> getAll() throws SQLException{
        Statement st = 
         conexao.getConexao().createStatement();
        ResultSet rs = st.executeQuery("select  * from vendedor");
        ArrayList<Vendedor> lista = new ArrayList<Vendedor>();
        int i =0;
        while(rs.next()){
            lista.add(new Vendedor(rs.getInt("codigo"),
                    rs.getInt("codPessoa"), rs.getInt("codSetor")));
         
             //buscar setor
            Statement sq =
               conexao.getConexao().createStatement();
            ResultSet rq = sq.executeQuery(
                    "select * from setor where(codigo = "+
                    rs.getInt("codsetor")+") ");
            while(rq.next()){
                ((Vendedor)lista.get(i)).addSetor(rq.getInt("codigo"),
                        rq.getString("descricao"));
            }
            
            //buscar pessoa
            Statement sp =
               conexao.getConexao().createStatement();
            ResultSet rp = sp.executeQuery(
                    "select * from pessoa where(codigo = "+
                    rs.getInt("codpessoa")+") ");
            while(rp.next()){
                ((Vendedor)lista.get(i)).addPessoa1(rp.getInt("codigo"),
                        rp.getString("Nome"),rp.getString("cpf"),
                        rp.getString("rg"),rp.getString("email"), 
                        rp.getString("fone"), rp.getString("nrocasa"),
                        rp.getString("Uf"), rp.getString("cidade"), 
                        rp.getString("bairro"), rp.getString("logradouro"),
                        rp.getString("cep"));
            }
            sp.close();
            rp.close();
            sq.close();
            rq.close();
            i++;     
        }
        st.close();
        rs.close();
        conexao.close();
        
        return lista;
    }  
    
    
    }

uma classe modelo (vendedor e pessoa)

package Modelo;

import java.util.ArrayList;

public class Vendedor {
    
    private int codigo;
    private int codPessoa;
    private int codSetor;
    
     ArrayList<Pessoa> lista = new ArrayList<Pessoa>();
     ArrayList<Setor> lista2 = new ArrayList<Setor>();
    
     public Vendedor(int codigo, int codPessoa, int codSetor) {
        this.codigo = codigo;
        this.codPessoa = codPessoa;
        this.codSetor = codSetor;
    }
     
      public void addPessoa1(int cod, String n, String c, String r, String e,
            String f, String nr, String u, String cid, String bair,
            String logr, String ce){
       this.lista.add(new Pessoa
               (cod, n, c, r, e, f, nr, u, cid, bair, logr, ce));
   }
   
      public void addSetor(int cod, String descr) {
          this.lista2.add(new Setor(cod, descr));
      }
      
      public ArrayList<Setor> getSetor() {
          return lista2;
      }
      
     public ArrayList<Pessoa> getPessoa1() {
        return lista;
    }

    public int getCodPessoa() {
        return codPessoa;
    }

    public void setCodPessoa(int codPessoa) {
        this.codPessoa = codPessoa;
    }

    public int getCodSetor() {
        return codSetor;
    }

    public void setCodSetor(int codSetor) {
        this.codSetor = codSetor;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public ArrayList<Pessoa> getLista() {
        return lista;
    }

    public void setLista(ArrayList<Pessoa> lista) {
        this.lista = lista;
    }

    @Override
    public String toString() {
        String s = ", codPessoa: " + this.getCodPessoa() + ", codSetor=" + 
                this.getCodSetor();
        for (Setor a : lista2) {
            s+= "\n" + a.toString() + "\n";
        }
        for (Pessoa p : lista) {
            s += p.toString() + "\n";
        }
        return s;
    }
     
     
    
}
package Modelo;

public class Pessoa {

    private int codigo;
    private String nome;
    private String cpf;
    private String rg;
    private String email;
    private String fone;
    private String nrocasa;
    private String uf;
    private String cidade;
    private String bairro;
    private String logradouro;
    private String cep;

    public Pessoa(int codigo, String nome, String cpf, String rg, String email,
            String fone, String nrocasa, String uf, String cidade, String bairro,
            String logradouro, String c) {
        this.codigo = codigo;
        this.nome = nome;
        this.cpf = cpf;
        this.rg = rg;
        this.email = email;
        this.fone = fone;
        this.nrocasa = nrocasa;
        this.uf = uf;
        this.cidade = cidade;
        this.bairro = bairro;
        this.logradouro = logradouro;
        this.cep = c;
    }
    
    

    public String getBairro() {
        return bairro;
    }

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

    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 int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getEmail() {
        return email;
    }

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

    public String getFone() {
        return fone;
    }

    public void setFone(String fone) {
        this.fone = fone;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public String getNome() {
        return nome;
    }

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

    public String getNrocasa() {
        return nrocasa;
    }

    public void setNrocasa(String nrocasa) {
        this.nrocasa = nrocasa;
    }

    public String getRg() {
        return rg;
    }

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

    public String getUf() {
        return uf;
    }

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

    @Override
    public String toString() {
        return "Nome: " + this.getNome() + "\nCPF" + this.getCpf()
                + "        RG: " + this.getRg() + "\nE-mail: " 
                + this.getEmail() + "\nFone: " + this.getFone() + "\nNroCasa: " 
                + this.getNrocasa() + "\nUF: " + this.getUf() +  
                "      Cidade: " + this.getBairro() + "       bairro: " 
                + this.getBairro() + "\nLogradouro: " + this.getLogradouro() +
                "          CEP: " + this.getCep();
    }
    
    
    
    
}

agradeco a atencao…

1 Resposta

luiz_renato

Meu caro,

Em linhas gerais vc deve:

  • Implementar um objeto javax.swing.table.AbstractTableModel (não use DefaultTableModel) que receba a lista dos vendedores e outros objetos que vc quizer exibir na JTable.
  • Instanciar um objeto desse seu tableModel com a lista de objetos que serão exibidos
  • Setar o tableModel do seu table através do método jTable.setModel());

Dê uma olhada :
http://www.javasimples.com.br/swing-awt/death-to-defaulttablemodel-abstracttablemodel-rulez/
http://www.guj.com.br/articles/147
http://download.oracle.com/javase/7/docs/api/javax/swing/table/AbstractTableModel.html
http://download.oracle.com/javase/tutorial/uiswing/components/table.html#data

Criado 9 de novembro de 2011
Ultima resposta 9 de nov. de 2011
Respostas 1
Participantes 2