Carregar imagem no mouse click

Tenho no banco uma tabela produtos que armazena as informações dos produtos incluindo a imagem do produto. Tenho uma JTable que na consulta lista produtos, e o evento de mouse click que ao clicar jogar as informações do produtos para um panel com os dados deles que recebem todos menos a imagem salvar no banco de dados.

evento do botao pesquisa

private void jbPesquisaActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // Pesquisa produto pelo nome
        String nome = "%" + jtfProdutoConsulta.getText() + "%";
        ProdutosDao dao = new ProdutosDao();
        List<Produtos> lista = dao.buscaProduto(nome); 
}

metodo dao da pesquisa

try {
            //criando a lista.
            List<Produtos> lista = new ArrayList<>();
            //comando sql para lista os dados.
            String sql = "select codigo_produto, codigo_barra, descricao, marca, grupo, categoria, foto from tb_produtos"
                    + " inner join tb_marcas on (cod_marca = codigo_marca)"
                    + " inner join tb_grupos on (cod_grupo = codigo_grupo) inner join tb_categorias on (cod_categoria = codigo_categoria) where descricao like ?";

            PreparedStatement stmt = con.prepareStatement(sql);
            stmt.setString(1, "%"+nome+"%");
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                Produtos obj = new Produtos();
                Marcas m = new Marcas();
                Grupos g = new Grupos();
                Categorias c = new Categorias();
                

                obj.setCodigo(rs.getInt("codigo_produto"));
                obj.setCodigo_barra(rs.getString("codigo_barra"));
                obj.setDescricao(rs.getString("descricao"));
                
                m.setMarca(rs.getString("marca"));
                obj.setMarca(m);
                
                g.setGrupo(rs.getString("grupo"));
                obj.setGrupo(g);
                
                c.setCategoria(rs.getString("categoria"));
                obj.setCategoria(c);
                
                obj.setImagem(rs.getBytes("foto"));

                lista.add(obj);
            }
            return lista;
        } catch (Exception erro) {
            JOptionPane.showMessageDialog(null, "Erro :" + erro);
            return null;
        }
    }

Evento mouse click

private void jtbProdutoMouseClicked(java.awt.event.MouseEvent evt) {                                        
        // Evento de clicar em um item da tabela de jogar para aba dados.
        jtpProduto.setSelectedIndex(0);
        
        jtfCodigo.setText(jtbProduto.getValueAt(jtbProduto.getSelectedRow(), 0).toString());
        jtfCodBarras.setText(jtbProduto.getValueAt(jtbProduto.getSelectedRow(), 1).toString());
        jtfDescricao.setText(jtbProduto.getValueAt(jtbProduto.getSelectedRow(), 2).toString());

        Marcas m = new Marcas();
        MarcasDao dao = new MarcasDao();
        m = dao.buscaMarcaPeloNome(jtbProduto.getValueAt(jtbProduto.getSelectedRow(), 3).toString());
        jcbMarca.removeAllItems();
        jcbMarca.getModel().setSelectedItem(m);

        Grupos g = new Grupos();
        GruposDao daog = new GruposDao();
        g = daog.buscaMarcaPeloNome(jtbProduto.getValueAt(jtbProduto.getSelectedRow(), 4).toString());
        jcbGrupo.removeAllItems();
        jcbGrupo.getModel().setSelectedItem(g);

        Categorias c = new Categorias();
        CategoriasDao daoc = new CategoriasDao();
        c = daoc.buscaCategoriaPeloNome(jtbProduto.getValueAt(jtbProduto.getSelectedRow(), 5).toString());
        jcbCategoria.removeAllItems();
        jcbCategoria.getModel().setSelectedItem(c);
        
        Produtos p = new Produtos();
        ProdutosDao daop = new ProdutosDao();
        p = daop.buscaProdutoPorCodigo(Integer.parseInt(jtbProduto.getValueAt(jtbProduto.getSelectedRow(), 0).toString()));
        
        ImageIcon icon = new ImageIcon(p.getImagem());
        icon.setImage(icon.getImage().getScaledInstance(jpImagem.getWidth() - 5, jpImagem.getHeight() - 10, 100));
        jlbImagem.setIcon(icon);
        
        //liberar campos.
        jtfCodBarras.setEnabled(true);
        jtfDescricao.setEnabled(true);
        jcbMarca.setEnabled(true);
        jcbGrupo.setEnabled(true);
        jcbCategoria.setEnabled(true);
        jbSalvar.setEnabled(true);
        jbEditar.setEnabled(true);
        jbExcluir.setEnabled(true);
        jbNovo.setEnabled(true);
        jbAdicionarFoto.setEnabled(true);

    }

imagem da tela de consulta ao consultar

dados da tela apos o mouse click

como pode ve a imagem vem nao aparece fica cinza.

a tela padrao dele ao rodar o aplicativo e esta