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


