Problema do JTable

estou imprimindo o resultado de uma pesquisa no BD em uma tabela mas estou com problema pq esta imprimindo tudo, ao meu ver, na mesma linha, ou seja só aparece a última linha, não esta passando p/ próxima linha, se alguém puder me ajudar ou dar uma dica, o código é o seguinte:

package relatorios;

import BD.*;
import javax.swing.table.DefaultTableModel;

public class RelGeral extends javax.swing.JFrame {

    /** Cria novo formulário NewJFrame */
    public RelGeral() {
        initComponents();
        MysqlBD banco = new MysqlBD("jdbc:mysql://localhost/contaspessoais?user=root&password=");
        banco.connect(); //conecta ao banco
        MysqlQuery q = new MysqlQuery(banco.conn);
        
        Object colunas[] = {"Nome", "Crédito", "Débito"};
        q.open("select * from pessoa order by nome"); // executa uma sentença sql.
        q.last(); // vai para o último registro
        do {
            Object linhas[][] = {
                {
                    q.fieldbyname("codigo"), q.fieldbyname("nome"), q.fieldbyname("nome")
                },
            };
            DefaultTableModel modelo = new DefaultTableModel(linhas, colunas);
            jTable1.setModel(modelo);
        }
        while (q.prev());
    }

    /**
    * Este método é chamado dentro do construtor para
    * inicializar o formulário.
    */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null},
                {null, null, null},
                {null, null, null},
                {null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 524, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 423, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>

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

}

Bem, primeiro faça a inicialização da sua tabela com o nome de cada coluna, após isso
faça o adicionamento de cada linha com o DefaultTableModel.

DefaultTableModel model = (DefaultTableModel) sua_tabela.getModel();
model.setNumRows(0); // zera a tabela
model.addRow(new Object[]{dado1, dado2, dado3});

Isso basta.

Não use DefaultTableModel
Trabalhe com JTable de uma forma inteligente com o ObjectTableModel e com o Auto-Filtro!

Este Post vai te ajudar
http://www.guj.com.br/posts/list/132698.java#714736

Exatamente. De novo, caso ainda não tenha ficado claro:
[size=24][color=red]Não use DefaultTableModel[/color][/size]

:slight_smile:

Veja isso: http://www.guj.com.br/posts/list/15/199067.java#1001295