Tenho a seguinte estrutura no form de Cadastro de Empresa, que é para mostrar os dados que foram cadastrados da empresa, a imagem foi salva corretamente, mas na hora de setar no Label eu não sei o que está acontecendo, só está retornando NullPointerException. O que eu posso estar fazendo de errado?
Obs: estou apenas salvando a imagem no banco, não estou salvando-a em diretório, seu tipo no banco de dados é o bytea.
public void mostraDados()
{
//recupera os dados do banco
Empresa e = ctremp.getEmpresa();
//seta os dados na view
txtCodigo.setText(String.valueOf(e.getCodigo()));
txtCodigo.setHorizontalAlignment(txtCodigo.CENTER);
txtNome.setText(e.getNome());
txtAtividade.setText(e.getAtividade());
txtCNPJ.setText(e.getCnpj());
txtTelefone.setText(e.getTelefone());
txtCelular.setText(e.getCelular());
txtCEP.setText(e.getCep());
txtEndereco.setText(e.getEndereco());
txtBairro.setText(e.getBairro());
txtNumero.setText(e.getNumero());
// lblLogo.setIcon(new ImageIcon(imagem));
ManipularImagem.exibirImagemLabel(e.getFoto(), lblLogo);
}
Classe DAO Empresa
public Empresa getEmpresa()
{
Empresa e = null;
DAOUf daoUf = new DAOUf();
DAOCidade daoCidade = new DAOCidade();
String sql = "select * from empresa";
ResultSet rs = Banco.getCon().consultar(sql);
try
{
if (rs.next())
{
e = new Empresa(rs.getInt("emp_cod"),
rs.getString("emp_nome"),
rs.getString("emp_atividade"),
rs.getString("emp_cnpj"),
rs.getString("emp_telefone"),
rs.getString("emp_celular"),
rs.getString("emp_cep"),
rs.getString("emp_endereco"),
rs.getString("emp_bairro"),
rs.getString("emp_numero"),
daoCidade.getCidadeCodigo(rs.getInt("cid_cod")),
daoUf.getUfCodigo(rs.getInt("uf_cod")),
rs.getBytes("emp_foto"));
}
} catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage());
e = null;
}
return e;
}
ManipularImagem - método
public static void exibirImagemLabel(byte[] minhaimagem, javax.swing.JLabel label)
{
//primeiro verifica se tem a imagem
//se tem convert para inputstream que é o formato reconhecido pelo ImageIO
if (minhaimagem != null)
{
InputStream input = new ByteArrayInputStream(minhaimagem);
try
{
BufferedImage imagem = ImageIO.read(input);
label.setIcon(new ImageIcon(imagem));
} catch (IOException ex)
{
}
} else
{
label.setIcon(null);
}
}
