JTable x Banco de Dados

Sou iniciante em Java e estou fazendo um sistema de cadastro de produto ate então ja consegui fazer toda a parte de cadastro e conexão com o banco de dados, mas agora estou com a seguinte duvida em relação a jtable aonde eu quero colocar todos os dados do banco de dados e exibir em uma tabela (jtable), abaixo o codigo:


import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;


public class RelatorioProduto extends javax.swing.JFrame {

    String produto = "select * from produto";


     public RelatorioProduto() {
             initComponents();
             if (!BD.getConnection())
         {

         JOptionPane.showMessageDialog(null, "Falha na conexão, o sistema será fechado!");
         System.exit(0);
         }
             

      }

    @SuppressWarnings("unchecked")


    private void btExibirActionPerformed(java.awt.event.ActionEvent evt) {

        if (evt.getSource()==btExibir)
        {
          PreencherTabela();
        }
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new RelatorioProduto().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JTable Consulta;
    private javax.swing.JButton btExibir;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration

    public void PreencherTabela()

  {

     Consulta.getColumnModel().getColumn(0).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(1).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(2).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(3).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(4).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(5).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(6).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(7).setPreferredWidth(50);
     String sql = ("SELECT * FROM produto ") ;
     BD.setResultSet(sql);
     DefaultTableModel modelo = (DefaultTableModel)Consulta.getModel();
     modelo.setNumRows(0);
    try
    {

      while (BD.resultSet.next())
          modelo.addRow(new Object[] {BD.resultSet.getString("codigo"),BD.resultSet.getString("grupo"),BD.resultSet.getString("produto"),BD.resultSet.getString("datacompra"),BD.resultSet.getString("estoque"),BD.resultSet.getString("custo"),BD.resultSet.getString("codigo"),BD.resultSet.getString("venda"),BD.resultSet.getString("validade") });
          BD.resultSet.first();
    }

    catch(SQLException erro) { }

            erro.printStackTrace(System.err);
  }
}

Este codigo Funciona normal, mas na hora que aperto o botão EXIBIR não aparece nada,
Abaixo segue o código do método:

  public void PreencherTabela()

  {

     Consulta.getColumnModel().getColumn(0).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(1).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(2).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(3).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(4).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(5).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(6).setPreferredWidth(50);
     Consulta.getColumnModel().getColumn(7).setPreferredWidth(50);
     String sql = ("SELECT * FROM produto ") ;
     BD.setResultSet(sql);
     DefaultTableModel modelo = (DefaultTableModel)Consulta.getModel();
     modelo.setNumRows(0);
    try
    {

      while (BD.resultSet.next())
          modelo.addRow(new Object[] {BD.resultSet.getString("codigo"),BD.resultSet.getString("grupo"),BD.resultSet.getString("produto"),BD.resultSet.getString("datacompra"),BD.resultSet.getString("estoque"),BD.resultSet.getString("custo"),BD.resultSet.getString("codigo"),BD.resultSet.getString("venda"),BD.resultSet.getString("validade") });
          BD.resultSet.first();
    }

    catch(SQLException erro) { }

            erro.printStackTrace(System.err);
  }

Abaixo o codigo do botão EXIBIR:

 private void btExibirActionPerformed(java.awt.event.ActionEvent evt) {

        if (evt.getSource()==btExibir)
        {
          PreencherTabela();
        }
    }

Gostaria de saber aonde está o erro.
Só para lembrar uso o NETBEANS.

esquece o defaultablemodel e usa a velha tabela recomendada pelo vini…

la tem exemplos para os preenchimentos de tabelas