[RESOLVIDO] Erro ao inserir linhas em uma JTable

Galera, estou fazendo uma tela para o usuário fazer buscas no banco de dados. Os dados serão exibidos em uma JTable.
Mas não sei o que está acontecendo que não está exibindo. Quando eu clico no botão Buscar não aparece nada na JTable e está dando o erro AWT-EventQueue-0" java.lang.NullPointerException. Se vcs puderem me ajudar ficaria grato!

[code]public List getLista(String livro) throws SQLException {

    String sql = "select * from cadastro_livros where titulo like ?";
    PreparedStatement pstm = this.conexao.prepareStatement(sql);
    pstm.setString(1, livro);
    ResultSet rs = pstm.executeQuery();

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

    while (rs.next()) {

        Livros l1 = new Livros();

        l1.setCodigo(Integer.valueOf(rs.getString("codigo_livro")));
        l1.setTitulo(rs.getString("titulo"));
        l1.setAutor(rs.getString("autor"));
        l1.setVolume(Integer.valueOf(rs.getString("volume")));
        l1.setEdicao(rs.getString("edicao"));
        l1.setAnoEdicao(Integer.valueOf(rs.getString("ano_edicao")));
        l1.setEditora(rs.getString("editora"));
        l1.setGenero(rs.getString("genero"));
        l1.setLocalizacao(rs.getString("localizacao"));
        l1.setDisponibilidade(rs.getString("disponibilidade"));
        minhaLista.add(l1);
    }
    
    rs.close();
    pstm.close();
    return minhaLista;

}

[/code]

[code]private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {
try {
listarLivros();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, “A busca não pode ser concluída\n” + ex, “Erro!”, JOptionPane.ERROR_MESSAGE);
}
}

public void listarLivros() throws SQLException {

    AddBD add = new AddBD();
    add.getLista("%" + txtBuscar.getText() + "%");
    mostrarPesquisa(livro);

}

 private void mostrarPesquisa(List<Livros> livro) {

    if (livro.size() == 0) {
        JOptionPane.showMessageDialog(null, "Nenhum livro foi encontrado", "Atenção!", JOptionPane.WARNING_MESSAGE);
    } else {
        String[] linha = new String[]{null, null, null, null, null};
        for (int i = 0; i < livro.size(); i++) {
            tmLivro.addRow(linha);
            tmLivro.setValueAt(livro.get(i).getCodigo(), i, 0);
            tmLivro.setValueAt(livro.get(i).getTitulo(), i, 1);
            tmLivro.setValueAt(livro.get(i).getAutor(), i, 2);
            tmLivro.setValueAt(livro.get(i).getGenero(), i, 3);
            tmLivro.setValueAt(livro.get(i).getDisponibilidade(), i, 4);
        }
    }
 }

[/code]

Alguém pode me ajudar?
Valeu!

Alguém mais? haha

Oi,

Qual a linha do NullPointer?

Adiantando:

if (txtBuscar != null) add.getLista("%" + txtBuscar.getText() + "%");

Tchauzin!

lina, acho que não entendi bem. Eu devo adicionar esse if ?

Eu coloquei esse if e não mudou nada! :S
Até pq isso seria desnecessário, pois se eu clicar no botão buscar sem ter especificado o que buscar era para ele listar todos os livros que estão cadastrados no meu banco.

Ae lina, deu certo aqui! O certo era:

livro = add.getLista("%" + txtBuscar.getText() + "%");

Obrigado pela sua atenção.

Atenção, não use DefaultTableModel.

Isso te causa mais problemas do que soluções.

Voce já tem sua classe modelada e o DAO funcionando, só falta escrever um TableModel, siga os links da minha assinatura para aprender como fazer isso.

Valeu Marky! Vou seguir suas dicas.