JTable

Infelismente estou com um problema para add os dados do banco de dados no jtable

public class cad_clientes extends javax.swing.JFrame {
    conexao con_cliente;
    /** Creates new form cad_clientes */
    public cad_clientes() throws SQLException{
       
        initComponents();
        con_cliente=new conexao(); //inicializou a variavel.
        con_cliente.conecta();
        preencher_jtable();
    }

No codigo acima eu pego a classe conexao e conecto ela depois chamo a funcao preencher_jtable.

public void preencher_jtable()
    {
        jTable1.getColumnModel().getColumn(0).setPreferredWidth(50);
        jTable1.getColumnModel().getColumn(1).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(2).setPreferredWidth(90);
        jTable1.getColumnModel().getColumn(3).setPreferredWidth(90);
        
        DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
        modelo.setNumRows(0);
        
        try
        { 
            while (con_cliente.rs.next()) //rs=resultset..
                modelo.addRow(new Object [] {con_cliente.rs.getString("nome_cliente"),con_cliente.rs.getString("endereco_cliente"),
con_cliente.rs.getString("telefone_cliente"),con_cliente.rs.getString("celular_cliente")});
                con_cliente.rs.first();
        }
        catch (SQLException erro){
        JOptionPane.showMessageDialog(null,"Erro ao listar no JTable "+erro);
        }
    }

Essa funcao deveria add os dados do banco no jtable… porém esta dando o seguinte erro

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException

esse erro creio eu q seja um objeto q naum exista porém para mim esta tudo certo.

É difícil dizer, você precisa colocar o código de inicialização dos componentes para ver se há algo faltando…

Eu começaria substituindo o addRow(Object) por addRow(Vector). E verificaria se o JTable tem realmente 4 colunas para definir a largura delas.

se deu nullPointer… é algum registro do banco que está como null e quando vc tenta passar para a tabela dá erro…
experimenta colocar um if antes de acidionar na tabela para aquelas colunas que não são not-null

tipo assim…


 modelo.addRow(new Object [] {con_cliente.rs.getString("nome_cliente") == null ? "  " : con_cliente.rs.getString("nome_cliente"), ... outros campos

já pensou em utilizar um TableModel???


http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#data