Jtable não é populada

Fiz um tableModel personalizado, e testei inserindo os valores manualmente, e funcionou.
Porem ao gerar um arrayList do banco e retornar para montagem da tabela, a mesma permanece vazia.
Poderiam me ajudar a encontrar o erro?

Criação JTable / TelaListarEstoques

        EstoqueTableModel tbModel = new EstoqueTableModel();
    		
    		tblListarEstoques = new JTable(tbModel);
    		scrlListarEstoques.setViewportView(tblListarEstoques);
    		
    		EstoqueController estoqueController = new EstoqueController();
    		tbModel.addListaDeEstoques(estoqueController.listarTodosEstoques());
    //		estoque.setIdEstoque(001);
    //		estoque.setDescricaoEstoque("ALMOX 40 CENTRAL");
    //		tbModel.addEstoque(estoque);

Método para popular tabela / TableModelEstoque
    public void addListaDeEstoques(List<Estoque> novosEstoques) {
    		int tamanhoAntigo = getRowCount();
    		estoquesDTO.addAll(novosEstoques);
    		fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);
    	}

Método que chama o DAO / EstoqueController
    public List<Estoque> listarTodosEstoques() {
    		List<Estoque> listaDeEstoques = new ArrayList<Estoque>();
    		EstoqueDAO estoqueDAO = new EstoqueDAO();
    		try {
    			listaDeEstoques = estoqueDAO.listarTodos();
    		} catch (SQLException e) {
    			e.printStackTrace();
    			JOptionPane.showMessageDialog(null, e.getMessage());
    		}
    		return listaDeEstoques;
    	}

Método DAO que retorna a lista / EstoqueDAO
public List listarTodos() throws SQLException {

    		List<Estoque> listaDeEstoques = new ArrayList<Estoque>();
    		try {
    			Connection conn = ConexaoBanco.abrirConexao();
    			String sql = "SELECT * FROM estoque";
    			PreparedStatement pst = conn.prepareStatement(sql);
    			ResultSet rs = pst.executeQuery();
    			
    			while (rs.next()) {
    				Estoque estoque = new Estoque();
    				estoque.setIdEstoque(rs.getLong(1));
    				estoque.setDescricaoEstoque(rs.getString(2));
    				listaDeEstoques.addAll(listaDeEstoques);
    			}
    			
    			pst.close();
    			conn.close();
    			
    		} catch (Exception e) {

    			e.printStackTrace();
    			JOptionPane.showMessageDialog(null, e.getMessage());
    		}
    		return listaDeEstoques;
    	}

Olá, esta linha está errada. Troque por:
listaDeEstoques.add(estoque);

1 curtida

Rodrigo_Void, muito obrigado cara!
Eu sou iniciante, e tem vezes que passo horas e horas programando, e depois não consigo encontrar erros do tipo.
Não percebi que estava enviando uma List para montar outra List, ao invés de enviar o objeto.

Mais uma vez agradeço!

Por falar nisso, o que está achando da forma como estou encapsulando e trabalhando com as camadas?
Tem algo a acrescentar?

Mesmo sendo iniciante, seu código parece muito bom.
Algumas ressalvas:

  1. Não use select * na busca, sempre especifique os campos que está buscando.
  2. Na hora de ler os valores retornados da busca, chame por nome da coluna e não por posição: rs.getLong(1).
1 curtida

Obrigado pelas dicas Rodrigo!
Vou fazer os ajustes agora mesmo!

Mais uma vez, obrigado pela atenção!