[color=red] [/color][size=18] [/size]Pessoal, Boa noite!
:?: Estou criando uma aplicação que faz consulta no banco de dados apartir da informação da chave primária pelo usuário. Gostaria que ao consultar a tabela de produtos fossem exibidos em um JLabel o nome, preço e imagem do produto. Só que estou com dificuldade em fazer com que a imagem seja exibida e não tenho a mínima ideia de como fazer isso. Alguém pode me ajudar? O código e esse:
try{
String sql = "select * from TbProduto where Cod="+ txtCodigo.getText();
ResultSet rs = Conectando.getConectando().executeQuery(sql);
rs.next();
JLabelFoto;// AQUI QUE ESTOU QUERENDO EXIBIR A IMAGEM
JLabelExibeNome.setText(rs.getString("Nome"));
JlabelMostrarPreco.setText(rs.getString("Preco"));
} catch (Exception ex) {//tratamento de erro
JOptionPane.showMessageDialog(this, "Registro não Encontrado!!");//esta mensagem é exibida se por a caso não houver nenhum registro com o n° da chave primária informado pelo usuário
}
Cara no banco de dados a imagem vai estar em formato de bytes ai vc pode pegala e transformar em um file se não estou enganado aic pode procurar uma maneira de criar um iconImage para setar no label, acredito que exista uma maneira de fazer isso sem precisar salvar a imagem em algum lugar no computador apenas em memória…
Se possivél usa as tags especificas para adicionar código fica mais facil para visualizar…
se você já tem a imagem em formato de byte no banco você já fez o mais complicado…
para trazer a imagem de volta vc faria o seguinte (no caso da imagem estar em byte):
...
rs.getBytes(n);
...
e depois na hora de mostrar a imagem:
JLabel label = new JLabel();
label.setIcon(new ImageIcon(produto.getFoto()));
lembrando que é fundamental que você separe as camadas ao desenvolver orientado à objetos… não é bom juntar as operações de banco de dados com a tua view… assim vc está restringindo a aplicação somente a esta view (no teu caso JFrames pra Desktop). Se algum dia teu cliente te pedir um módulo web pra este sistema você teria que fazer novamente todas as operações do banco… se vc separar as camadas você só montaria as páginas ocupando os mesmos DAOs, por exemplo…