Jtable problema com atualizaÇÃo

Bom, estou tentando fazer um simples programa simplesmente para incluir, alterar e excluir um produto e seu preço de venda digitado pelo usuário e armazenado no banco de dados, no inicio quando chamo os dados do banco para a tabela através do método preencher_jtable() criado no fim do código, funciona normalmente, o problema é não estou conseguindo fazer a atualização da tabela quando o usuário exclui ou altera um dado, então adicionei ao evento de excluir e alterar novamente o método de preencher_jtable(), só que quando a tabela é ré-preenchida depois que o usuário excluiu ou alterou um dado cadastrado, o primeiro dado do BD não é mostrado na tabela, só é mostrado do segundo em diante, Exemplo: “se eu tenho cadastrado no BD os registros de código 1, 3, 4, 5, 8 e 9, quando chamo a tabela ao iniciar o aplicativo, é mostrado todos os registros, se eu excluir o registro 5 por exemplo, ao reconstruir a tabela, mostrará na tabela apenas os registros 3, 4, 8 e 9.”
alguém sabe um jeito mais pratico para resolver essa questão de atualizar os dados ao clicar nos botões de excluir, salvar e alterar, já procurei e não encontrei, agradeço qualquer esforço.

OBS: Eu não sou o criador do código fonte, estou estudando programação Java e peguei um código como exemplo através de algumas video aulas e sites da internet, para estudar e compreender, consegui entender o código, só falta compreender um método para atualizar corretamente a tabela. Não criei tudo na mão, usei a ferramenta NETBEANS para criar o formulário e adicionei eventos aos botões.

vou postar o código para ficar melhor de entender e de possível ajuda, só tem um pequeno problema, estou usando o access2007 como banco de dados, que postarei tudo junto com o código em arquivo .rar
Serei grato à quem puder me dá uma dica.
Obrigado.
trecho para excluir um dado do banco junto com o método preencher_jtable()
O código completo está em anexo

private void jButton_excluirActionPerformed(java.awt.event.ActionEvent evt) {
// procedimento para exclusão de registro
try
{
String sql = "select * from cardapio Where codigo = "+jTextField_codigo.getText();
con_produtos.executeSQL(sql);
con_produtos.resultset.first();
String nome = “Deletar o Ítem : “+con_produtos.resultset.getString(“descricao”)+” ?”;
int opcao_escolhida = JOptionPane.showConfirmDialog(null,nome,"Excluir Ítem ",JOptionPane.YES_NO_OPTION);
if (opcao_escolhida == JOptionPane.YES_OPTION)
{
sql = “DELETE FROM cardapio Where codigo =”+jTextField_codigo.getText();
int conseguiu_excluir = con_produtos.statement.executeUpdate(sql);
if (conseguiu_excluir == 1)
{
JOptionPane.showMessageDialog(null,“Exclusão realizada com sucesso”);
//atualiza o ResultSet
con_produtos.executeSQL(“Select * from cardapio”);
con_produtos.resultset.first(); //posiciona no primeiro registro
mostra_dados(); //irá chamar a função em que irá mstrar os dados no form
preencher_jtable();

        }
     }
     else
       return;
    
}
catch (SQLException erro)
{
JOptionPane.showMessageDialog(null,"Erro a tentar excluir o registro..."+erro);
 }

}

public void preencher_jtable()
{
jTable1.getColumnModel().getColumn(0).setPreferredWidth(20);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(100);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(20);

    DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
    modelo.setRowCount(0);

    try
    {            
        while (con_produtos.resultset.next())            
        modelo.addRow(new Object [] {con_produtos.resultset.getString("codigo"),con_produtos.resultset.getString("descricao"),con_produtos.resultset.getString("preco")});
        con_produtos.resultset.first();
        
    }

catch (SQLException erro){
JOptionPane.showMessageDialog(null,"Erro ao listar no JTable "+erro);
}
}

Leia o link da minha assinatura sobre TableModel.

Com o DefaultTableModel, será muito mais difícil entender como funcionam recursos como esse, de atualizar tabelas.

[quote=ViniGodoy]Leia o link da minha assinatura sobre TableModel.

Com o DefaultTableModel, será muito mais difícil entender como funcionam recursos como esse, de atualizar tabelas.[/quote]

Obrigado pela dica, vou analisar um pouco mais, agora o meu tempo esta um pouco corrido, deixa eu perguntar, quando eu resolver esse problema do tópico que criei, é preciso fazer alguma coisa tipo marcar o fórum como resolvido ou algo assim? ou não precisa fazer nada, é que sou novo no fórum.

Mudando um pouco de assunto, qual ferramenta vcs usam para trabalhar com java, (NETBEANS, ECLIPSE OU OUTRO), é que vejo os códigos postados em outros tópicos indicando linha por linha tudo organizado, e o que eu postei está tudo bagunçado, em qual formato vcs exportam o código para postar nos fóruns ou qual programa vcs utilizam? Obrigado.

Dá uma lida:
http://www.guj.com.br/posts/list/50115.java