Pesquisa em jTable

public static List<Contatos> getList(String nome) throws SQLException{     
        String sql ="SELECT registro,nome,telefone FROM registros WHERE nome LIKE ?";     
        PreparedStatement stm = conn.prepareStatement(sql);     
        stm.setString(1,nome);     
        ResultSet rs = stm.executeQuery();     
     
        List<Contatos> minhaLista = new ArrayList<Contatos>();     
     
        while(rs.next()){     
            Contatos tab = new Contatos();     
            tab.setRegistro(Long.valueOf(rs.getString("registro")));     
            tab.setNome(rs.getString("nome"));     
            tab.setTelefone(rs.getString("telefone"));     
            minhaLista.add(tab);     
                    
        }     
        rs.close();     
        stm.close();     
        return minhaLista;     
       
    }  

No tableModel que vc passou tem um metodo que retorna só string, o problema é que no meu projeto deve vir registro que seria o código do cliente, no caso inteiro. Talvez o problema seja esse. isso que estou falando tá no modelo que vc me passou, o do Erick, abaixo. Talvez seja por isso, que a jtable não mostra o resultado da pesquisa. Mas mostra todos os dados cadastrados no banco, inclusive o registro(codigo) .

public Class<?> getColumnClass(int columnIndex) { return String.class; }

Mas vc não consegue olhar o código do TableModel, entender e corrigir?

Você pode fazer algo como:

[code]public Class<?> getColumnClass(int columnIndex) {
if (coluna == COL_REGISTRO)
return Integer.class;

return String.class;
} [/code]

Eu ainda não tenho experiência em java, estou começando agora, por isso tenho tantas dúvidas. Mas vc não respondeu se o código da Lista está correto já que pediu para que eu o postasse. Tem algum problema no código ?
E esse código abaixo devo colocar nas propriedades da jTable ?


List<Contatos> contatos = agenda.getList("%" + tfPesq.getText()+"%");      
2. ContatoTableModel model = new ContatoTableModel(contatos);       
3. tblContato.setModel(model);    

Aparentemente ele está certo sim. Você quer que apareça todos os que tem “m” no nome, ou os que começam com “M”?

Se for os que começam, o critério do like deveria ser só “M%” e não “%M%”

Sei dessas características com o comando like, mas independente disso, a tabela continua a não listar esses resultados da pesquisa na jTable. A única coisa visualizada na jTable é todos contatos cadastrados no banco, que por sinal vem da classe

List<Contatos> contatos = agenda.getList("%" + tfPesq.getText()+"%");         
2. ContatoTableModel model = new ContatoTableModel(contatos);         
3. tblContato.setModel(model);      

Parece que o parâmetro passado, ou seja, digitado no textfield não está funcionando

List<Contatos> contatos = agenda.getList("%" + tfPesq.getText()+"%");     

Eu estou colocando esses códigos nas propriedades da jTable está certo ? ou tenho que colocar dentro da classe agenda ?

List<Contatos> contatos = agenda.getList("%" + tfPesq.getText()+"%");         
2. ContatoTableModel model = new ContatoTableModel(contatos);         
3. tblContato.setModel(model);      

Anexa aqui o código todo da classe onde o JTable está. Seu código aparentemente está certo.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Agenda.java
 *
 * Created on 04/12/2010, 09:39:34
 */

package br.com.integrator.cap11.agenda;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

/**
 *
 * @author marcelo
 */
public class Agenda extends javax.swing.JFrame {

    private TabelaAgenda tabela;
    private Statement stmt;
    private Conexao conexao;
    private Connection conn;
    private String rowId;
    private boolean novo;
    private Object tamanhoFrame;
    private ArrayList<String[]> ResultSets;
    private String value;
    private Connection con;
    List<Contatos> contato;
    
   
    
      private ResultSet getResults(){
        ResultSet rs =null;
        try{
            rs=stmt.executeQuery("select*from registros ORDER BY registro");
        }catch(SQLException e){}
        return rs;
    }

  

    
    /** Creates new form Agenda */
    public Agenda()throws SQLException {
        conexao=new Conexao();
        conn=conexao.getConexao();
        stmt=conn.createStatement();
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        Sobre = new javax.swing.JDialog();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        panelAgenda = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        lNomepes = new javax.swing.JLabel();
        tfPesq = new javax.swing.JTextField();
        jButton2 = new javax.swing.JButton();
        panelDados = new javax.swing.JPanel();
        lNome = new javax.swing.JLabel();
        lEndereco = new javax.swing.JLabel();
        lBairro = new javax.swing.JLabel();
        lCidade = new javax.swing.JLabel();
        lEstado = new javax.swing.JLabel();
        lCep = new javax.swing.JLabel();
        lTelefone = new javax.swing.JLabel();
        tfNome = new javax.swing.JTextField();
        tfEndereco = new javax.swing.JTextField();
        tfBairro = new javax.swing.JTextField();
        tfCidade = new javax.swing.JTextField();
        javax.swing.text.MaskFormatter maskestado = null;
        try{
            maskestado = new javax.swing.text.MaskFormatter("UU");
            maskestado.setPlaceholderCharacter('_');
        }catch(java.text.ParseException exc){}
        tfEstado = new javax.swing.JFormattedTextField(maskestado);
        javax.swing.text.MaskFormatter maskcep =null;
        try{
            maskcep = new javax.swing.text.MaskFormatter("#####-###");
            maskcep.setPlaceholderCharacter('_');
        }catch(java.text.ParseException exc){}
        tfCep = new javax.swing.JFormattedTextField(maskcep);
        javax.swing.text.MaskFormatter masktel = null;
        try{
            masktel = new javax.swing.text.MaskFormatter("(##)####-####");
            masktel.setPlaceholderCharacter('_');
        }catch(java.text.ParseException exc){}
        tfTelefone = new javax.swing.JFormattedTextField(masktel);
        jToolBar1 = new javax.swing.JToolBar();
        btSalvar = new javax.swing.JButton();
        btNovo = new javax.swing.JButton();
        btExcluir = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jSeparator1 = new javax.swing.JPopupMenu.Separator();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem4 = new javax.swing.JMenuItem();

        Sobre.setTitle("Sobre a Agenda");

        jLabel1.setIcon(new javax.swing.ImageIcon("C:\\Documents and Settings\\marcelo\\Meus documentos\\icones\\Livros\\4828_128x128.png")); // NOI18N

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel2.setText("Agenda do NetBeans");

        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 10));
        jLabel3.setText("Versão 1.0 - ano: 2010");

        jLabel4.setText("Autor: Marcelo Kleyton");

        jButton1.setText("Fechar");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout SobreLayout = new javax.swing.GroupLayout(Sobre.getContentPane());
        Sobre.getContentPane().setLayout(SobreLayout);
        SobreLayout.setHorizontalGroup(
            SobreLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, SobreLayout.createSequentialGroup()
                .addContainerGap(37, Short.MAX_VALUE)
                .addComponent(jLabel2)
                .addGap(68, 68, 68))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, SobreLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE)
                .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addGroup(SobreLayout.createSequentialGroup()
                .addGap(120, 120, 120)
                .addComponent(jButton1)
                .addContainerGap(107, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, SobreLayout.createSequentialGroup()
                .addContainerGap(182, Short.MAX_VALUE)
                .addComponent(jLabel3)
                .addContainerGap())
        );
        SobreLayout.setVerticalGroup(
            SobreLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(SobreLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(SobreLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel4)
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel3))
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        jToolBar1.addSeparator();

        panelAgenda.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        try{    
              Agenda agenda = new Agenda()   
             List<Contatos> contatos = agenda.getList("%"+tfPesq.getText()+"%");            
            TabelaAgenda model = new TabelaAgenda(contatos);       
            jTable1.setModel(model);   

            
        }catch(Exception ex){ex.printStackTrace();};
        jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTable1MouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(jTable1);

        lNomepes.setText("Nome");

        jButton2.setText("Pesquisar");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout panelAgendaLayout = new javax.swing.GroupLayout(panelAgenda);
        panelAgenda.setLayout(panelAgendaLayout);
        panelAgendaLayout.setHorizontalGroup(
            panelAgendaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelAgendaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(panelAgendaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 430, Short.MAX_VALUE)
                    .addGroup(panelAgendaLayout.createSequentialGroup()
                        .addComponent(lNomepes)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(tfPesq, javax.swing.GroupLayout.PREFERRED_SIZE, 299, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButton2)))
                .addContainerGap())
        );
        panelAgendaLayout.setVerticalGroup(
            panelAgendaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelAgendaLayout.createSequentialGroup()
                .addGap(11, 11, 11)
                .addGroup(panelAgendaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lNomepes)
                    .addComponent(tfPesq, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 186, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(24, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Agenda", panelAgenda);

        lNome.setText("Nome");

        lEndereco.setText("Endereço");

        lBairro.setText("Bairro");

        lCidade.setText("Estado");

        lEstado.setText("Cidade");

        lCep.setText("CEP");

        lTelefone.setText("Telefone");

        javax.swing.GroupLayout panelDadosLayout = new javax.swing.GroupLayout(panelDados);
        panelDados.setLayout(panelDadosLayout);
        panelDadosLayout.setHorizontalGroup(
            panelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelDadosLayout.createSequentialGroup()
                .addGroup(panelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(panelDadosLayout.createSequentialGroup()
                        .addGap(6, 6, 6)
                        .addGroup(panelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(lEndereco)
                            .addComponent(lBairro)
                            .addComponent(lCidade)))
                    .addGroup(panelDadosLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(lNome)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(panelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelDadosLayout.createSequentialGroup()
                        .addComponent(tfEstado, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(lCep)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(tfCep, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(lTelefone)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(tfTelefone))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelDadosLayout.createSequentialGroup()
                        .addComponent(tfBairro, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(12, 12, 12)
                        .addComponent(lEstado, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(tfCidade))
                    .addComponent(tfNome, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(tfEndereco, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 338, Short.MAX_VALUE))
                .addContainerGap(59, Short.MAX_VALUE))
        );
        panelDadosLayout.setVerticalGroup(
            panelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelDadosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(panelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lNome)
                    .addComponent(tfNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(panelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(tfEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lEndereco))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(panelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lBairro)
                    .addComponent(tfBairro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(tfCidade, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lEstado))
                .addGap(10, 10, 10)
                .addGroup(panelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lCidade)
                    .addComponent(tfEstado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lCep)
                    .addComponent(tfCep, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lTelefone)
                    .addComponent(tfTelefone, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(139, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Dados", panelDados);

        jToolBar1.setRollover(true);

        btSalvar.setText("Salvar");
        btSalvar.setFocusable(false);
        btSalvar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btSalvar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSalvarActionPerformed(evt);
            }
        });
        jToolBar1.add(btSalvar);

        btNovo.setText("Novo");
        btNovo.setFocusable(false);
        btNovo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btNovo.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btNovoActionPerformed(evt);
            }
        });
        jToolBar1.add(btNovo);

        btExcluir.setText("Excluir");
        btExcluir.setEnabled(false);
        btExcluir.setFocusable(false);
        btExcluir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btExcluir.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btExcluirActionPerformed(evt);
            }
        });
        jToolBar1.add(btExcluir);

        jMenu1.setMnemonic('A');
        jMenu1.setText("Arquivo");

        jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem1.setText("Novo");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem1);

        jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem2.setText("Salvar");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem2);
        jMenu1.add(jSeparator1);

        jMenuItem3.setText("Sair");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem3);

        jMenuBar1.add(jMenu1);

        jMenu2.setMnemonic('u');
        jMenu2.setText("Ajuda");

        jMenuItem4.setText("Sobre");
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem4ActionPerformed(evt);
            }
        });
        jMenu2.add(jMenuItem4);

        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 467, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 457, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(11, 11, 11)
                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 280, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked
       btExcluir.setEnabled(true);
       rowId =(String)tabela.getValueAt(jTable1.getSelectedRow(), 0);
       if(evt.getClickCount()==2){
           jTabbedPane1.setSelectedIndex(1);
           visRegistro(rowId);
           habCampos();

       }
    }//GEN-LAST:event_jTable1MouseClicked

    private void btSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSalvarActionPerformed
        // TODO add your handling code here:
        if(novo)
            insRegistro();
        else
            atRegistro();
        desCampos();
        btExcluir.setEnabled(false);

    }//GEN-LAST:event_btSalvarActionPerformed

    private void btNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btNovoActionPerformed
        // TODO add your handling code here:
        novo=true;
        jTabbedPane1.setSelectedIndex(1);
        limpar();
        habCampos();
        btExcluir.setEnabled(false);

    }//GEN-LAST:event_btNovoActionPerformed

    private void btExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btExcluirActionPerformed
        // TODO add your handling code here:
        try{
            excluir(rowId);
        }catch(SQLException ex){
            ex.printStackTrace();
        }


    }//GEN-LAST:event_btExcluirActionPerformed

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
        // TODO add your handling code here:
        novo=true;
        jTabbedPane1.setSelectedIndex(1);
        limpar();
        habCampos();
        btExcluir.setEnabled(false);
    }//GEN-LAST:event_jMenuItem1ActionPerformed

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
        // TODO add your handling code here:
        if(novo)
            insRegistro();
        else
            atRegistro();
        desCampos();
        btExcluir.setEnabled(false);

    }//GEN-LAST:event_jMenuItem2ActionPerformed

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
        // TODO add your handling code here:
        System.exit(0);
    }//GEN-LAST:event_jMenuItem3ActionPerformed

    private void formWindowOpened(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowOpened
        // TODO add your handling code here:
        desCampos();
    }//GEN-LAST:event_formWindowOpened

    private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
        // TODO add your handling code here:
        conexao.fechar(stmt);
        conexao.fecharConexao();
    }//GEN-LAST:event_formWindowClosing

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        Sobre.dispose();
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed
        // TODO add your handling code here:
        java.awt.Dimension tamanhoDialogo=Sobre.getPreferredSize();
        java.awt.Dimension tamanhoFrame=getSize();
        java.awt.Point loc=getLocation();
        Sobre.setLocation((tamanhoFrame.width - tamanhoDialogo.width)/2 + loc.x,(tamanhoFrame.height - tamanhoDialogo.height)/2 +loc.y);
        Sobre.setModal(true);
        Sobre.pack();
        Sobre.setVisible(true);
    }//GEN-LAST:event_jMenuItem4ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        try {
            listarContatos();
        } catch (SQLException ex) {
            Logger.getLogger(Agenda.class.getName()).log(Level.SEVERE, null, ex);
        }

    }//GEN-LAST:event_jButton2ActionPerformed

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    new Agenda().setVisible(true);
                } catch (SQLException ex) {
                    Logger.getLogger(Agenda.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JDialog Sobre;
    private javax.swing.JButton btExcluir;
    private javax.swing.JButton btNovo;
    private javax.swing.JButton btSalvar;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JPopupMenu.Separator jSeparator1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JLabel lBairro;
    private javax.swing.JLabel lCep;
    private javax.swing.JLabel lCidade;
    private javax.swing.JLabel lEndereco;
    private javax.swing.JLabel lEstado;
    private javax.swing.JLabel lNome;
    private javax.swing.JLabel lNomepes;
    private javax.swing.JLabel lTelefone;
    private javax.swing.JPanel panelAgenda;
    private javax.swing.JPanel panelDados;
    private javax.swing.JTextField tfBairro;
    private javax.swing.JTextField tfCep;
    private javax.swing.JTextField tfCidade;
    private javax.swing.JTextField tfEndereco;
    private javax.swing.JTextField tfEstado;
    private javax.swing.JTextField tfNome;
    private javax.swing.JTextField tfPesq;
    private javax.swing.JTextField tfTelefone;
    // End of variables declaration//GEN-END:variables

    private void visRegistro(String value) {
       JTextField[] tf =campos();
       String SQL = "SELECT*FROM registros WHERE registro ="+ value;
       ResultSet res;
       try{
           res = stmt.executeQuery(SQL);
           res.next();
           for(int i=0;i<tf.length;i++)
               tf[i].setText(res.getString(i+2));
       }catch(SQLException ex){
           ex.printStackTrace();
       }
    }



    private void habCampos() {
       JTextField[]tf = campos();
         for(int i=0;i<tf.length;i++)
            tf[i].setEnabled(true);
    }

    private JTextField[] campos(){
        JTextField[]tf ={tfNome,tfEndereco,tfBairro,tfCidade,tfEstado,tfCep,tfTelefone};
        return tf;

    }



    private void desCampos(){
        JTextField[] tf=campos();
            for(int i=0;i<tf.length;i++)
                tf[i].setEnabled(false);
        }

     private void delRegistro(String value)throws SQLException{
         String SQL="DELETE FROM registros  WHERE registro="+value;
         stmt.executeUpdate( SQL);
     }

     private void excluir(String valor)throws SQLException{
         int opcao=JOptionPane.showConfirmDialog(this,"Tem certeza  que você deseja excluir esse cadastro?","Exclusão do Cadastro",JOptionPane.YES_NO_OPTION);
         if(opcao == JOptionPane.YES_OPTION){
             delRegistro(valor);
             tabela.deletRow(jTable1.getSelectedRow());
             btExcluir.setEnabled(false);
         }
     }
     
     private void insRegistro(){
         JTextField []tf = campos();
         try{
             String SQL="INSERT INTO registros" +"(nome,endereco,bairro,cidade,estado,cep,telefone)"+ "VALUES (?,?,?,?,?,?,? )";
             PreparedStatement ps = conn.prepareStatement(SQL);
             for(int i=0;i<tf.length;i++)
                 ps.setString(i+1,tf[i].getText());
                 ps.executeUpdate();
                 limpar();
                 tabela.setResult(getResults());
                 ps.close();
                 jTabbedPane1.setSelectedIndex(0);
                 novo=false;
         }catch(SQLException ex){ex.printStackTrace();}
     }

      private void atRegistro(){
          JTextField[] tf = campos();
          int opcao=JOptionPane.showConfirmDialog(this,"Deseja salvar as alterções feitas nesse cadastro ?","Alteração de Cadastro",JOptionPane.YES_NO_OPTION);
          if(opcao == JOptionPane.YES_OPTION){
              try{
                  String SQL ="UPDATE registros SET" + " nome=?, endereco=?, bairro=?, cidade=?," + "estado=?, cep=?, telefone=?" + "WHERE registro=?";
                  PreparedStatement ps = conn.prepareStatement(SQL);
                  for(int i=0;i<tf.length;i++)
                      ps.setString(i+1, tf[i].getText());
                      ps.setString(8, rowId);
                      ps.executeUpdate();
                      limpar();
                      tabela.setResult(getResults());
                      ps.close();
                      jTabbedPane1.setSelectedIndex(0);
                      novo=false;
              }catch(SQLException ex){ex.printStackTrace();}
          }
      }
    private void limpar() {
        JTextField[]tf = campos();
        for(int i=0;i<tf.length;i++)
            tf[i].setText("");
    }

    public List<Contatos> getLista(String nome) throws SQLException{
        String sql ="SELECT registro,nome,telefone FROM registros WHERE nome LIKE ?";
        PreparedStatement stm = conn.prepareStatement(sql);
        stm.setString(1,nome);
        ResultSet rs = stm.executeQuery();

        List<Contatos> minhaLista = new ArrayList<Contatos>();

        while(rs.next()){
            Contatos tab = new Contatos();
            tab.setRegistro(Long.valueOf(rs.getString("registro")));
            tab.setNome(rs.getString("nome"));
            tab.setTelefone(rs.getString("telefone"));
            minhaLista.add(tab);

          
        }
        rs.close();
        stm.close();
        return minhaLista;
   
    }


    

  }
        
}

No evento do botão pesquisar estou chamando o método getLista() da lista de contatos{

getLista("%"+tfPesq.getText()+"%"); mas quando digito algo no jtextField não lista nada na jTable. Os getResults usados em outros métodos como atualizar não estão sendo mais usados.

Ué, cadê a implementação do método listarContatos()?

Outra coisa, aquele código do setModel deveria estar no seu botão pesquisar, não na inicialização do frame. Na inicialização do Frame ele vai listar todos da tabela, pois o JTextField ainda estará vazio. Aí vai acabar fazendo um where com nome LIKE ‘%%’

Então esse código abaixo eu devo tirar das propriedades da tabela e colocar no evento do botão pesquisar e chamar o método listarContatos(), é isso ?

  Agenda agenda = new Agenda()  
List<Contatos> contatos = agenda.getList("%"+tfPesq.getText()+"%");       
TabelaAgenda model = new TabelaAgenda(contatos);       
 jTable1.setModel(model); 

Veja o código do método listarContatos:

 private void listarContatos() throws SQLException {  
       Agenda agend =new Agenda();  
         contato=agend.getList("%"+tfPesq.getText() + "%");  
      mostrarPesquisa(contato);    
   }  
  
  private void mostrarPesquisa(List<Contatos> contato) throws SQLException {  
        if(contato.size() == 0){  
         JOptionPane.showMessageDialog(null, "Dado não encontrado na pesquisa");  
       }else{             
    String [] linha = new String[]{null,null,null};  
           for(int i=0;i< contato.size();i++){  
  
         // tabela.addTableModelListener(jTable1);  
            tabela.setValueAt(contato.get(i).getRegistro(),i, 0);  
            tabela.setValueAt(contato.get(i).getNome(),i, 1);  
            tabela.setValueAt(contato.get(i).getTelefone(),i, 2);  
       }  
             tabela.fireTableDataChanged();  
     }     
  }  

Essa parte final do código mostrarpesquisa fiz com base no dafaultTableModel e eu não sei como corrigir, pois da forma como está não mostra nada na jtable. a variável tabela recebe os valores mas é como se os recebesse, pois não os permite visualizar.

Isso aqui será seu código listaContatos():

public void listaContatos() {
   List&lt;Contatos&gt; contatos = getList("%"+tfPesq.getText()+"%");       
   TabelaAgenda model = new TabelaAgenda(contatos);       
   jTable1.setModel(model); 
}

Não existirá o método mostrarPesquisa().
Quando vc fizer o setModel, a tabela se atualizará automaticamente.

Desculpe pela falta de notícias, pois estava sem internet. Em relação as instruções que vc me passou, fiz os testes e o módulo para pesquisa passou a funcionar corretamente, ou seja, da forma como deveria. Muito obrigado.
Antes que seja encerrado esse tópico, tenho algumas dúvidas e gostaria que vc me explicasse:

No projeto do Erick, o TableModel tem o seguinte código:

private static final long SerialVersionUID = 1L;, seria um número de serial para especificar o programa ou seria um valor inteiro, como código do cliente para ser usado na aplicação ?

E outra, qual a necessidade de criar um ContatoTableModel vazio, já que existe um ContatoTableModel preenchido.

/* Cria um ContatoTableModel vazio. */

    public ContatoTableModel() {   
        linhas = new ArrayList<Contato>();   
    }   

Geralmente adiciona-se o construtor vazio para o caso de você querer criar uma tabela de contato sem ninguém. Poderia ser numa tela “Selecionar contato”, por exemplo, que viesse vazia, e os contatos só seriam selecionados após uma busca.

O SerialVersionUID é um campo long, que indica qual é a identificação da classe sendo serializada. Estude sobre serialização. Você vai ver que sempre atribuir 1L para o campo também é incorreto.

Depois que troquei o meu TableModel o sistema não consegue mais excluir dados da jtable, assim como, atualizar. Acho que não está retornando o código(registro). Funcionava assim: Na Jtable, aparecia os contatos como está ocorrendo agora. Depois para excluir bastava selecionar um dos contatos da jtable e mandar excluir e pronto, mais ele não consegue excluir. Já para atualizar, na tabela se dava duplo clique em um dos contatos e ele abria em outra paleta do jTabettpane com todos os dados do contato. Para mim o probelma é o mesmo, já que ambos os métodos precisam do código para tanto excluir quanto atualizar. Contudo minha jtable está mostrando as seguintes colunas: registro (código do cliente, nome e telefone) com todos os dados.
Esse método é para mostrar os registros nos jtextfields para serem atualizados:

1.	private void visRegistro(String value) {   
2.	       JTextField[] tf =campos();   
3.	       String SQL = "SELECT*FROM registros WHERE registro ="+ value;   
4.	       ResultSet res;   
5.	       try{   
6.	           res = stmt.executeQuery(SQL);   
7.	           res.next();   
8.	           for(int i=0;i<tf.length;i++)   
9.	               tf[i].setText(res.getString(i+2));   
10.	       }catch(SQLException ex){   
11.	           ex.printStackTrace();   
12.	       }   
13.	    }   

Esse metodo que é executado no evento do mouse


1.	private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked   
2.	       btExcluir.setEnabled(true);   
3.	       rowId =(String)tabela.getValueAt(jTable1.getSelectedRow(), 0);   
4.	       if(evt.getClickCount()==2){   
5.	           jTabbedPane1.setSelectedIndex(1);   
6.	           visRegistro(rowId);   
7.	           habCampos();   

A variável rowId está declarada como variavel global do tipo String, mas é como se ela não recebesse o valor do indice do contato. Além disso, quando coloco na instrução abaixo, 1 no lugar do zero, ele não segue para a paleta de dados do tabbetPane.

Já que no metodo getValueAt do TableModel a coluna que representa o registro(código do cliente) é o zero. Assim:

1.	public Object getValueAt(int rowIndex, int columnIndex) {   
2.	        // Pega o sócio da linha especificada.   
3.	        Contato contato = linhas.get(rowIndex);   
4.	  
5.	        // Retorna o campo referente a coluna especificada.   
6.	        // Aqui é feito um switch para verificar qual é a coluna   
7.	        // e retornar o campo adequado. As colunas são as mesmas   
8.	        // que foram especificadas no array "colunas".   
9.	        switch (columnIndex) {   
10.	        case 0: // Primeira coluna é o nome.   
11.	            return contato.getRegistro();   
12.	        case 1: // Segunda coluna é o e-mail.   
13.	            return contato.getNome();   
14.	        case 2: // Terceira coluna é o telefone fixo.   
15.	            return contato.getTelefone();   
16.	        case 3: // Quarta coluna é o telefone celular.   
17.	            return contato.getTelefoneCelular();   
18.	        default:   
19.	            // Se o índice da coluna não for válido, lança um   
20.	            // IndexOutOfBoundsException (Exceção de índice fora dos limites).   
21.	            // Não foi necessário verificar se o índice da linha é inválido,   
22.	            // pois o próprio ArrayList lança a exceção caso seja inválido.   
23.	            throw new IndexOutOfBoundsException("columnIndex out of bounds");   
24.	        }   
25.	    }