Ola pessoal,
estou tem problemas para mostrar tabelas baseadas em itens de um pesquisa no bd em tempo de execução:
eis os códigos
package br.com.siscadastro.dao;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.ResourceBundle;
import javax.swing.JOptionPane;
import br.com.siscadastro.model.ClienteModel;
// classe utilizada para acesso ao banco de dados do cliente
public class ClienteDAO {
// conexão com do banco de dados
private Connection connection;
// statement utilizado para manipular os dados
private PreparedStatement stmt;
// resultset utilizado para pegar resultados de consultas
private ResultSet rs;
// strings de comandos SQL
private static final String COMANDO_DE_INSERT =
"insert into clientes (nome, sexo, dataNascimento, rg, cpf, endereco, bairro, cep, cidade, estado, telefone)" +
" values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
private static final String COMANDO_DE_UPDATE =
"update clientes set nome = ?, sexo = ?, dataNascimento = ?, rg = ?, cpf = ?, endereco = ?, bairro = ?, cep = ?, " +
"cidade = ?, estado = ?, telefone = ?" +
"where id = ?";
private static final String COMANDO_DE_DELETE =
"delete from clientes where id = ?";
private static final String COMANDO_DE_SELECT_BUSCA_POR_ID =
"select * from clientes where id = ?";
private static final String COMANDO_DE_SELECT_BUSCA_TODOS =
"select * from clientes";
private static final String COMANDO_DE_SELECT_BUSCA_POR_NOME =
"select * from clientes where nome like ?%";
//--------------------------------------------------------------------------------------------------------------
/*
* método construtor
*/
public ClienteDAO() {
// método que inicializa a conexão
conectar();
} // fim do construtor
//--------------------------------------------------------------------------------------------------------------
/*
* método que conecta o sistema ao banco de dados
*/
public void conectar() {
// objeto que executa a leitura do aruivo de propriedades do banco de dados
ResourceBundle rb = ResourceBundle.getBundle( "br.com.siscadastro.dao.bancodedados" );
try {
// inicia a conexão
connection = DriverManager.getConnection( rb.getString( "url" ),
rb.getString( "usuario" ),
rb.getString( "senha" ) );
} catch ( SQLException e ) {
JOptionPane.showMessageDialog( null,
"Não foi possivel realizar conexão com o Banco de Dados",
"Mensagem do Sistema",
JOptionPane.ERROR_MESSAGE );
} // fim do bloco try/catch
} // fim do método conectar
//--------------------------------------------------------------------------------------------------------------
/*
* método para finalizar a conexão com o banco de dados
*/
public void desconectar() {
try {
// verifica se a conexão ja esta fechada
if( !connection.isClosed() );
// fecha a conexão
connection.close();
} catch ( SQLException e ) {
JOptionPane.showMessageDialog( null,
"Erro ao se desconectar do Banco de Dados",
"Mensagem do Sistema",
JOptionPane.ERROR_MESSAGE );
} // fim do bloco try/catch
} // fim do método desconectar
//--------------------------------------------------------------------------------------------------------------
/*
* método para incluir um novo cliente no banco de dados
*/
public void incluirCliente( ClienteModel cliente ) throws Exception {
try {
// carrega comando SQL no Statement
stmt = connection.prepareStatement( COMANDO_DE_INSERT );
// seta os parametros
carregarParametrosInclusao( cliente, stmt );
// executa o comando SQL
stmt.execute();
// finaliza o statement
stmt.close();
} catch ( SQLException e ) {
throw new Exception( e );
} // fim do bloco try/catch
} // fim do método incluirCliente
//--------------------------------------------------------------------------------------------------------------
/*
* método para editar um cliente no banco de dados
*/
public void editarCliente( ClienteModel cliente ) throws Exception {
try {
// carrega comando SQL no Statement
stmt = connection.prepareStatement( COMANDO_DE_UPDATE );
// seta os parametros
carregarParametrosEdicao( cliente, stmt );
// executa o comando SQL
stmt.execute();
// finaliza o statement
stmt.close();
} catch ( SQLException e ) {
throw new Exception( e );
} // fim do bloco try/catch
} // fim do método editarCliente
//--------------------------------------------------------------------------------------------------------------
/*
* método para editar um cliente no banco de dados
*/
public void deletarCliente( ClienteModel cliente ) throws Exception {
try {
// carrega comando SQL no Statement
stmt = connection.prepareStatement( COMANDO_DE_DELETE );
// seta os paramentros
stmt.setInt( 1, cliente.getId() );
// executa o comando SQL
stmt.execute();
// finaliza o statement
stmt.close();
} catch ( SQLException e ) {
throw new Exception( e );
} // fim do bloco try/catch
} // fim do método deletarCliente
//--------------------------------------------------------------------------------------------------------------
/*
* método para pesquisar um cliente no banco de dados apenas pelo ID
*/
public ClienteModel consultarCliente( int id ) throws Exception {
// instancia uma entidade cliente
ClienteModel cliente = new ClienteModel();
try {
// carrega comando SQL no Statement
stmt = connection.prepareStatement( COMANDO_DE_SELECT_BUSCA_POR_ID );
// seta os parametros
stmt.setInt( 1, id );
// carrega os resultados no resultset
rs = stmt.executeQuery();
// verifica se o Statement gerou resultados nulos
if( rs.next() == true ) {
// percorre todo o resultset
while( rs.next() ){
// carrega os dados no objeto cliente
cliente = retornaCliente( rs );
} // fim do while
// finaliza o resultset
rs.close();
// finaliza o statement
stmt.close();
// retorna o cliente
return cliente;
} else
throw new NullPointerException();
} catch ( SQLException e ) {
throw new Exception( e );
} // fim do bloco try/catch
} // fim do método consultarCliente
//--------------------------------------------------------------------------------------------------------------
/*
* método para pesquisar um cliente com base no campo e valor do campo informado pelo usuario
*/
public ClienteModel consultarCliente( String campo, String valor ) throws Exception {
// instancia um objeto clienteModel
ClienteModel cliente = new ClienteModel();
try {
// verifica qual campo foi escolhido
if( campo.equals( "Id" ) ) {
stmt = connection.prepareStatement( COMANDO_DE_SELECT_BUSCA_POR_ID );
stmt.setInt(1, Integer.parseInt( valor ) );
} else {
stmt = connection.prepareStatement( COMANDO_DE_SELECT_BUSCA_POR_NOME );
stmt.setString( 1, campo );
stmt.setString( 2, valor );
} // fim do bloco if/else
rs = stmt.executeQuery();
// verifica se o Statement gerou resultados nulos
if( rs.next() == true ) {
// percorre todo o resultset
while( rs.next() ) {
cliente = retornaCliente( rs );
} // fim do while
// finaliza o resultSet
rs.close();
// finaliza o statement
stmt.close();
// retorna o cliente
return cliente;
} else
throw new NullPointerException();
} catch ( SQLException e ) {
throw new Exception( e );
} // fim do bloco try/catch
} // fim do método consultarCliente
//--------------------------------------------------------------------------------------------------------------
/*
* método para gerar uma lista de clientes (todos os clientes da tabela)
*/
// método para gerar um lista de clientes
public List<ClienteModel> gerarLista() throws Exception {
// cria um lista que recebera objetos do tipo ClienteModel
List<ClienteModel> listaClientes = new ArrayList<ClienteModel>();
try {
// carrega comando SQL no Statement
stmt = connection.prepareStatement(COMANDO_DE_SELECT_BUSCA_TODOS);
// carrega os resultados no ResultSet
rs = stmt.executeQuery();
if(rs != null){
// percorre o ResultSet e adiciona o cliente na lista
while(rs.next()) {
// adiciona o cliente na lista
listaClientes.add(retornaCliente(rs));
} // fim do while
// finaliza o ResultSet
rs.close();
// finaliza o Statement
stmt.close();
return listaClientes;
}
else
throw new NullPointerException();
} catch (SQLException e) {
throw new Exception(e);
} // fim do bloco try/catch
} // fim do método gerarLista
//--------------------------------------------------------------------------------------------------------------
/*
* método para gerar uma lista de cliente com base no campo e valor do campo informado pelo usuario
*/
public List<ClienteModel> gerarLista(String campo, String valor) throws Exception {
// cria um lista que recebera objetos do tipo ClienteModel
List<ClienteModel> listaClientes = new ArrayList<ClienteModel>();
try {
// verifica qual campo foi escolhido
if( campo == "id" ) {
stmt = connection.prepareStatement( COMANDO_DE_SELECT_BUSCA_POR_ID );
stmt.setInt(1, Integer.parseInt( valor ) );
} else {
stmt = connection.prepareStatement( COMANDO_DE_SELECT_BUSCA_POR_NOME );
stmt.setString( 1, valor );
} // fim do bloco if/else
rs = stmt.executeQuery();
if(rs != null){
// percorre o ResultSet e adiciona o cliente na lista
while(rs.next()) {
// adiciona o cliente na lista
listaClientes.add(retornaCliente(rs));
} // fim do while
// finaliza o ResultSet
rs.close();
// finaliza o Statement
stmt.close();
return listaClientes;
}
else
throw new NullPointerException();
} catch (SQLException e) {
throw new Exception(e);
} // fim do bloco try/catch
} // fim do método gerarLista
//--------------------------------------------------------------------------------------------------------------
/*
* método utilizado para instanciar e retornar clientes
*/
public ClienteModel retornaCliente(ResultSet rs) throws SQLException {
ClienteModel cliente = new ClienteModel();
// carrega os dados no objeto cliente
cliente.setId(rs.getInt("id"));
cliente.setNome(rs.getString("nome"));
cliente.setSexo(rs.getString("sexo"));
// convertendo a data para o tipo Calendar
Calendar dataNascimento = Calendar.getInstance();
dataNascimento.setTime(rs.getDate("dataNascimento"));
cliente.setDataNascimento(dataNascimento);
//----------------------------------------
cliente.setRg(rs.getString("rg"));
cliente.setCpf(rs.getString("cpf"));
cliente.setEndereco(rs.getString("Endereco"));
cliente.setBairro(rs.getString("bairro"));
cliente.setCep(rs.getString("cep"));
cliente.setCidade(rs.getString("cidade"));
cliente.setEstado(rs.getString("estado"));
cliente.setTelefone(rs.getString("telefone"));
return cliente;
} // fim do método retornaCliente
//--------------------------------------------------------------------------------------------------------------
/*
* método que preenche os parametros do Statement utilizado no método incluirCliente
*/
public void carregarParametrosInclusao(ClienteModel cliente, PreparedStatement stmt) throws SQLException {
// seta os parametros
stmt.setString(1, cliente.getNome());
stmt.setString(2, cliente.getSexo());
stmt.setDate(3, new Date(cliente.getDataNascimento().getTimeInMillis()));
stmt.setString(4, cliente.getRg());
stmt.setString(5, cliente.getCpf());
stmt.setString(6, cliente.getEndereco());
stmt.setString(7, cliente.getBairro());
stmt.setString(8, cliente.getCep());
stmt.setString(9, cliente.getCidade());
stmt.setString(10, cliente.getEstado());
stmt.setString(11, cliente.getTelefone());
} // fim do métodocarregarParametrosInclusao
//--------------------------------------------------------------------------------------------------------------
/*
* método para preencher os parametros do Statement utilizado no método editarCliente
*/
public void carregarParametrosEdicao(ClienteModel cliente, PreparedStatement stmt) throws SQLException {
stmt.setString(1, cliente.getNome());
stmt.setString(2, cliente.getSexo());
stmt.setDate(3, new Date(cliente.getDataNascimento().getTimeInMillis()));
stmt.setString(4, cliente.getRg());
stmt.setString(5, cliente.getCpf());
stmt.setString(6, cliente.getEndereco());
stmt.setString(7, cliente.getBairro());
stmt.setString(8, cliente.getCep());
stmt.setString(9, cliente.getCidade());
stmt.setString(10, cliente.getEstado());
stmt.setString(11, cliente.getTelefone());
stmt.setInt(12, cliente.getId());
} // fim do método carregarParametrosEdicao
} // fim da classe
package br.com.siscadastro.control;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.swing.JOptionPane;
import br.com.siscadastro.dao.ClienteDAO;
import br.com.siscadastro.model.ClienteModel;
public class ClienteControl {
// método para incluir um novo cliente no banco de dados
public boolean incluirCliente(String nome, String sexo, Calendar dataNascimento, String rg,
String cpf, String endereco, String bairro, String cep, String cidade,
String estado, String telefone) {
// instancia um objeto do tipo ClienteModel
ClienteModel clienteModel = retornarCliente(nome, sexo, dataNascimento, rg, cpf, endereco, bairro, cep, cidade, estado, telefone);
try {
// instancia um objeto do tipo ClienteDAO
ClienteDAO clienteDAO = new ClienteDAO();
// executa o método incluirCliente
clienteDAO.incluirCliente(clienteModel);
// retorna true caso haja sucesso.
return true;
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"Erro ao incluir cliente!",
"Mensagem do Sistema",
JOptionPane.ERROR_MESSAGE);
return false;
} // fim do bloco try/catch
} // fim do método incluirCliente
//--------------------------------------------------------------------------------------------------------------
// método para alterar um cliente no banco de dados
public boolean editarCliente(int id, String nome, String sexo, Calendar dataNascimento, String rg,
String cpf, String endereco, String bairro, String cep, String cidade,
String estado, String telefone) {
// instancia um objeto do tipo Cliente Model
ClienteModel clienteModel = retornarCliente(id, nome, sexo, dataNascimento, rg, cpf, endereco, bairro, cep, cidade, estado, telefone);
try {
// instancia um objeto do tipo ClienteDAO
ClienteDAO clienteDAO = new ClienteDAO();
// executa o método adicionarCliente de clienteDAO
clienteDAO.editarCliente(clienteModel);
return true;
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"Erro ao editar cliente!",
"Mensagem do Sistema",
JOptionPane.ERROR_MESSAGE);
return false;
} // fim do bloco try/catch
} // fim do método alterarCliente
//--------------------------------------------------------------------------------------------------------------
// método para excluir um cliente do banco de dados
public boolean excluirCliente(int id) {
// instancia um objeto do tipo Cliente Model
ClienteModel clienteModel = new ClienteModel();
// populando o objeto clienteModel
clienteModel.setId(id);
try {
// instancia um objeto do tipo ClienteDAO
ClienteDAO clienteDAO = new ClienteDAO();
// executa o método adicionarCliente de clienteDAO
clienteDAO.deletarCliente(clienteModel);
return true;
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"Erro ao excluir cliente!",
"Mensagem do Sistema",
JOptionPane.ERROR_MESSAGE);
return false;
} // fim do bloco try/catch
} // fim do método excluirCliente
//--------------------------------------------------------------------------------------------------------------
// método que gera o cliente com base em informacoes passadas pelo usuario
public ClienteModel retornarCliente(String nome, String sexo, Calendar dataNascimento, String rg,
String cpf, String endereco, String bairro, String cep, String cidade,
String estado, String telefone) {
// instancia um objeto do tipo Cliente Model
ClienteModel clienteModel = new ClienteModel();
// populando o bojeto clienteModel
clienteModel.setNome(nome);
clienteModel.setSexo(sexo);
clienteModel.setDataNascimento(dataNascimento);
clienteModel.setRg(rg);
clienteModel.setCpf(cpf);
clienteModel.setEndereco(endereco);
clienteModel.setBairro(bairro);
clienteModel.setCep(cep);
clienteModel.setCidade(cidade);
clienteModel.setEstado(estado);
clienteModel.setTelefone(telefone);
// retorna o cliente
return clienteModel;
} // fim do método carregar gerarCliente
//--------------------------------------------------------------------------------------------------------------
// método que gera o cliente com base em informacoes passadas pelo usuario
public ClienteModel retornarCliente(int id, String nome, String sexo, Calendar dataNascimento, String rg,
String cpf, String endereco, String bairro, String cep, String cidade,
String estado, String telefone) {
// instancia um objeto do tipo Cliente Model
ClienteModel clienteModel = new ClienteModel();
// populando o bojeto clienteModel
clienteModel.setId(id);
clienteModel.setNome(nome);
clienteModel.setSexo(sexo);
clienteModel.setDataNascimento(dataNascimento);
clienteModel.setRg(rg);
clienteModel.setCpf(cpf);
clienteModel.setEndereco(endereco);
clienteModel.setBairro(bairro);
clienteModel.setCep(cep);
clienteModel.setCidade(cidade);
clienteModel.setEstado(estado);
clienteModel.setTelefone(telefone);
// retorna o cliente
return clienteModel;
} // fim do método carregar gerarCliente
//--------------------------------------------------------------------------------------------------------------
// método para gerar lista de cliente
public List<ClienteModel> gerarLista() {
try {
// intancia um objeto do tipo ClienteDAO
ClienteDAO clienteDAO = new ClienteDAO();
return clienteDAO.gerarLista();
} catch (Exception e) {
return null;
} // fim do bloco try/catch
} // fim do método gerarLista
//--------------------------------------------------------------------------------------------------------------
// método para gerar lista de cliente
public List<ClienteModel> gerarLista( String campo, String valor ) {
try {
// intancia um objeto do tipo ClienteDAO
ClienteDAO clienteDAO = new ClienteDAO();
return clienteDAO.gerarLista( campo, valor );
} catch (Exception e) {
return null;
} // fim do bloco try/catch
} // fim do método gerarLista
} // fim da classe
package br.com.siscadastro.view;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import br.com.siscadastro.componentes.TableClientes;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
public class TelaPesquisa extends JFrame {
private JComboBox comboCampos;
private JTextField txtValor;
private JButton botaoPesquisar;
private JButton botaoExcluir;
private JScrollPane scrollPane;
private JTable tabela;
//--------------------------------------------------------------------------------------------------------------
/*
* método construtor
*/
public TelaPesquisa() {
super("SisCadastro - Pesquisa de Cliente");
super.setLayout(new FlowLayout(FlowLayout.LEFT));
super.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// adiciona painel padronizado
super.add(getPainel());
carregarActionListener();
super.pack();
super.setVisible(true);
} // fim do construtor
//--------------------------------------------------------------------------------------------------------------
/*
* método que instancia os componentes visuais do form
*/
private void instanciarComponentes() {
// instanciando os componentes JComboBox
String[] elementosDoCombo = {"Selecione um campo para a pesquisa",
"id",
"nome" };
comboCampos = new JComboBox(elementosDoCombo);
// instancia a tabale
tabela = new TableClientes().createTable();
// instancia o componente JScrollPane
scrollPane = new JScrollPane(tabela,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
// instanciando os componentes JTextField
txtValor = new JTextField("Informe seu atributo de pesquisa aqui");
// instancia os componentes JButton
botaoPesquisar = new JButton("Pesquisar");
botaoExcluir = new JButton("Excluir");
} // fim do método instanciarComponentes
//--------------------------------------------------------------------------------------------------------------
/*
* método que retorna um painel ja padronizado
*/
private JPanel getPainel() {
// instancia os componentes que serão utilizados na interface gráfica
instanciarComponentes();
// objeto que padroniza as linhas e colunas da interface gráfica
FormLayout formLayout = new FormLayout(
"2dlu, 100px, 2dlu, 100px, 2dlu, 100px, 2dlu, 100px, 2dlu, pref, 2dlu, 100px, 2dlu, 100px, 2dlu, 100px, 2dlu", // colunas
"2dlu, top:pref, 2dlu, top:pref, 2dlu, top:pref, 2dlu, top:50px, 2dlu, top:300px, 2dlu, top:pref, 2dlu"); // linhas
// instancia um objeto JPanel
JPanel painel = new JPanel(formLayout);
// cria uma borda com titulo
painel.setBorder(BorderFactory.createTitledBorder("Pesquisa de clientes:"));
// instancia objeto que determina posicionamento dos componentes no painel
CellConstraints cellConstraints = new CellConstraints();
// colocando os componentes no lugar planejado
painel.add(comboCampos, cellConstraints.xyw(2, 2, 15));
painel.add(txtValor, cellConstraints.xyw(2, 4, 15));
painel.add(scrollPane, cellConstraints.xyw(2, 10, 15));
painel.add(botaoPesquisar, cellConstraints.xy(16, 6));
painel.add(botaoExcluir, cellConstraints.xy(16, 12));
// retorna o painel padronizado
return painel;
} // fim do método getPainel
//--------------------------------------------------------------------------------------------------------------
/*
* método carraga as ações nos botões do form
*/
private void carregarActionListener() {
carregarAcaoPesquisar();
carregarAcaoExcluir();
} // fim do método carregarActionListener
//--------------------------------------------------------------------------------------------------------------
private void carregarAcaoExcluir() {
// TODO Auto-generated method stub
}
private void carregarAcaoPesquisar() {
botaoPesquisar.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
String campo = ( String )comboCampos.getSelectedItem();
String valor = txtValor.getText();
tabela = new TableClientes().createTable( campo, valor );
}
});
}
} // fim da classe
package br.com.siscadastro.componentes;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;
import br.com.siscadastro.control.ClienteControl;
import br.com.siscadastro.dao.ClienteDAO;
import br.com.siscadastro.model.ClienteModel;
public class TableClientes {
// jTable que será retornada pelo método createTable
private JTable jtable;
// contante que representa o array de Strings que representa as colunas da tabela
private static final String[] colunas =
{ "ID", "Nome", "Sexo", "DataNascimento", "RG", "CPF", "Endereco", "Bairro", "CEP", "Cidade", "Estado", "Telefone" };
// constante que representa o array de booleans que representa a condição de edição das colunas
private static final boolean[] edicao =
{ false, false, false, false, false, false, false, false, false, false, false, false };
//--------------------------------------------------------------------------------------------------------------
/*
* método que cria uma tabela
*/
public JTable createTable() {
List linhas = null;
try {
linhas = gerarLista();
} catch ( Exception e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
TableModelClientes modelo = new TableModelClientes( linhas, colunas, edicao );
this.jtable = new JTable( modelo );
padronizarTabela();
return jtable;
} // fim do método createTable
//--------------------------------------------------------------------------------------------------------------
/*
* método que cria uma tabela com base em campo e valor do campo informado pelo usuario
*/
public JTable createTable( String campo, String valor ) {
List linhas = null;
try {
linhas = gerarLista( campo, valor );
} catch ( Exception e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
TableModelClientes modelo = new TableModelClientes( linhas, colunas, edicao );
this.jtable = new JTable( modelo );
padronizarTabela();
return jtable;
} // fim do método createTable
//--------------------------------------------------------------------------------------------------------------
/*
* método que gerar uma lista de strings[] para as linhas da tabela
*/
private List< String[] > gerarLista() throws Exception {
List< ClienteModel > lista = null;
lista = new ClienteControl().gerarLista();
List< String[] > linhas = new ArrayList< String[] >();
for( ClienteModel cliente : lista ) {
String[] linha = gerarLinha( cliente );
linhas.add( linha );
} // fim do for
return linhas;
} // fim do método gerarLista
//--------------------------------------------------------------------------------------------------------------
/*
* método que gerar uma lista de strings[] para as linhas da tabela com base em campo e valor informado
* pelo usuario
*/
private List< String[] > gerarLista( String campo, String valor ) throws Exception {
List< ClienteModel > lista = null;
lista = new ClienteControl().gerarLista( campo, valor );
List< String[] > linhas = new ArrayList< String[] >();
for( ClienteModel cliente : lista ) {
String[] linha = gerarLinha( cliente );
linhas.add( linha );
} // fim do for
return linhas;
} // fim do método gerarLista
//--------------------------------------------------------------------------------------------------------------
/*
* método que preencher uma linha
*/
private String[] gerarLinha(ClienteModel cliente) {
String[] linha = { "" + cliente.getId(),
cliente.getNome(),
cliente.getSexo(),
new SimpleDateFormat( "dd/MM/yyyy" ).format( cliente.getDataNascimento().getTime() ),
cliente.getRg(),
cliente.getCpf(),
cliente.getEndereco(),
cliente.getBairro(),
cliente.getCep(),
cliente.getCidade(),
cliente.getEstado(),
cliente.getTelefone() };
return linha;
} // fim do método gerarLinha
//--------------------------------------------------------------------------------------------------------------
/*
* método que padroniza o alinhamento do conteudo e tamanho das colunas
* é auxiliado pelo método padrozinarColunas
*/
private void padronizarTabela() {
// alinha conteudo da célula para a esquerda
DefaultTableCellRenderer esquerda = new DefaultTableCellRenderer();
esquerda.setHorizontalAlignment( SwingConstants.LEFT );
padronizarColunas( esquerda );
} // fim do método padrozinarTabela
//--------------------------------------------------------------------------------------------------------------
/*
* método que padroniza a parte de tamanho e alinhamento das colunas
* auxilia o método padronizarTabela
* chama outros três métodos que cuidam respectivamente dos valores do header,
* larguna da coluna e alinha da mesma
*/
private void padronizarColunas(DefaultTableCellRenderer esquerda) {
// seta a forma de seleção do tabela
jtable.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
// determina que os campos não são auto ajustaveis
jtable.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
// cria as colunas para formatação
TableColumn coluna1 = jtable.getColumnModel().getColumn( 0 );
TableColumn coluna2 = jtable.getColumnModel().getColumn( 1 );
TableColumn coluna3 = jtable.getColumnModel().getColumn( 2 );
TableColumn coluna4 = jtable.getColumnModel().getColumn( 3 );
TableColumn coluna5 = jtable.getColumnModel().getColumn( 4 );
TableColumn coluna6 = jtable.getColumnModel().getColumn( 5 );
TableColumn coluna7 = jtable.getColumnModel().getColumn( 6 );
TableColumn coluna8 = jtable.getColumnModel().getColumn( 7 );
TableColumn coluna9 = jtable.getColumnModel().getColumn( 8 );
TableColumn coluna10 = jtable.getColumnModel().getColumn( 9 );
TableColumn coluna11 = jtable.getColumnModel().getColumn( 10 );
TableColumn coluna12 = jtable.getColumnModel().getColumn( 11 );
// chamada ao método gerarValoresHeader
gerarValoresHeader( coluna1, coluna2, coluna3, coluna4, coluna5,
coluna6, coluna7, coluna8, coluna9, coluna10, coluna11,
coluna12 );
// chamada ao método dimensionarColunas
dimensionarColunas(coluna1, coluna2, coluna3, coluna4, coluna5,
coluna6, coluna7, coluna8, coluna9, coluna10, coluna11,
coluna12);
// chamada ao método alinharColunas
alinharColunas(esquerda, coluna1, coluna2, coluna3, coluna4, coluna5,
coluna6, coluna7, coluna8, coluna9, coluna10, coluna11,
coluna12);
} // fim do método padronizarColunas
//--------------------------------------------------------------------------------------------------------------
/*
* método que determina o alinhamento do contudo das celulas
*/
private void alinharColunas( DefaultTableCellRenderer esquerda,
TableColumn coluna1, TableColumn coluna2, TableColumn coluna3,
TableColumn coluna4, TableColumn coluna5, TableColumn coluna6,
TableColumn coluna7, TableColumn coluna8, TableColumn coluna9,
TableColumn coluna10, TableColumn coluna11, TableColumn coluna12 ) {
coluna1.setCellRenderer( esquerda );
coluna2.setCellRenderer( esquerda );
coluna3.setCellRenderer( esquerda );
coluna4.setCellRenderer( esquerda );
coluna5.setCellRenderer( esquerda );
coluna6.setCellRenderer( esquerda );
coluna7.setCellRenderer( esquerda );
coluna8.setCellRenderer( esquerda );
coluna9.setCellRenderer( esquerda );
coluna10.setCellRenderer( esquerda );
coluna11.setCellRenderer( esquerda );
coluna12.setCellRenderer( esquerda );
} // fim do método alinharColunas
//--------------------------------------------------------------------------------------------------------------
/*
* método que define a largura das colunas
*/
private void dimensionarColunas( TableColumn coluna1, TableColumn coluna2, TableColumn coluna3,
TableColumn coluna4, TableColumn coluna5, TableColumn coluna6,
TableColumn coluna7, TableColumn coluna8, TableColumn coluna9,
TableColumn coluna10, TableColumn coluna11, TableColumn coluna12 ) {
coluna1.setPreferredWidth( 50 );
coluna2.setPreferredWidth( 150 );
coluna3.setPreferredWidth( 80 );
coluna4.setPreferredWidth( 130 );
coluna5.setPreferredWidth( 100 );
coluna6.setPreferredWidth( 100 );
coluna7.setPreferredWidth( 250 );
coluna8.setPreferredWidth( 100 );
coluna9.setPreferredWidth( 80 );
coluna10.setPreferredWidth( 100 );
coluna11.setPreferredWidth( 50 );
coluna12.setPreferredWidth( 100 );
} // fim do método dimensionarColunas
//--------------------------------------------------------------------------------------------------------------
/*
* método que define os valores do header
*/
private void gerarValoresHeader(TableColumn coluna1, TableColumn coluna2,
TableColumn coluna3, TableColumn coluna4, TableColumn coluna5,
TableColumn coluna6, TableColumn coluna7, TableColumn coluna8,
TableColumn coluna9, TableColumn coluna10, TableColumn coluna11,
TableColumn coluna12) {
coluna1.setHeaderValue( "ID" );
coluna2.setHeaderValue( "Nome" );
coluna3.setHeaderValue( "Sexo" );
coluna4.setHeaderValue( "Data de Nascimento" );
coluna5.setHeaderValue( "RG" );
coluna6.setHeaderValue( "CPF" );
coluna7.setHeaderValue( "Endereço" );
coluna8.setHeaderValue("Bairro");
coluna9.setHeaderValue( "CEP" );
coluna10.setHeaderValue( "Cidade" );
coluna11.setHeaderValue( "Estado" );
coluna12.setHeaderValue( "Telefone" );
} // fim do método gerarValoresHeader
} // fim da classe
package br.com.siscadastro.componentes;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class TableModelClientes extends AbstractTableModel {
// ArrayList que guarda o valor que serão gravados nas linhas
private List linhas = null;
// Array de string que representam as colunas
private String[] colunas = null;
// Array de booleanos que guarda a situação para edição de cada coluna
private boolean[] colsEdicao;
//--------------------------------------------------------------------------------------------------------------
/*
* retona valores das colunas
*/
public String[] getColunas() {
return colunas;
} // fim do método getColunas
//--------------------------------------------------------------------------------------------------------------
/*
* retorna uma lista com os valores das linhas
*/
public List getLinhas() {
return linhas;
} // fim do método getLinhas
//--------------------------------------------------------------------------------------------------------------
/*
* método que modificar o valor da coluna
*/
public void setColunas(String[] strings) {
colunas = strings;
} // fim do método setColunas
//--------------------------------------------------------------------------------------------------------------
/*
* método que modifica o valor das linhas
*/
public void setLinhas(List lista) {
linhas = lista;
} // fim do método setLinhas
//--------------------------------------------------------------------------------------------------------------
/*
* Retorna o número de colunas no modelo
*/
public int getColumnCount() {
return getColunas().length;
} // public getColumnCount
//--------------------------------------------------------------------------------------------------------------
/*
* Retorna o número de linhas existentes no modelo
*/
public int getRowCount() {
return getLinhas().size();
} // fim do método getRowCount
//--------------------------------------------------------------------------------------------------------------
/*
* Obtem o valor na linha e coluna
*/
public Object getValueAt(int rowIndex, int columnIndex) {
// Obtem a linha, que é uma String[]
String[] linha = (String[])getLinhas().get(rowIndex);
// retorna o objeto que esta na coluna
return linha[columnIndex];
} // fim do método getValueAt
//--------------------------------------------------------------------------------------------------------------
// contrutor
public TableModelClientes(List linhas, String[] colunas, boolean[] edicao) {
setLinhas(linhas);
setColunas(colunas);
colsEdicao = edicao;
} // fim do construtor
//--------------------------------------------------------------------------------------------------------------
/*
* método que indica se a coluna aceita edição
*/
public boolean isCellEditable(int row, int col) {
return colsEdicao[col];
}
//--------------------------------------------------------------------------------------------------------------
/*
* Seta o valor na linha e coluna
*/
public void setValueAt(Object value, int row, int col) {
// Obtem a linha, que é uma String[]
String[] linha = (String[])getLinhas().get(row);
// Altera o conteudo no indice da coluna passado
linha[col] = (String)value;
// dispara o evento de celula alterada
fireTableCellUpdated(row,col);
} // fim do método setValueAt
} // fim da classe
Então...
o que preciso e que clicando no botao Pesquisar o programa pegue o campo e o valor do txt, efetue a pesquisa no banco e atualize a tabela que ja esta carregada na tela.
se alguém puder me explicar um meio...pois eu não sou muito bom com JTable.
Obrigado!