Carregar imagem em um JLabel

0 respostas
alexwebsp

Tenho uma cadastro de funcionários, e tenho o campo imagem, que consigo gravar no Banco Postgres em byte[], tenho um jTable que seleciono os funcionários, para executar alteração e exclusão. Então quando seleciono o funcionário na jTable, seu dados são mostrados nas jTextFields relacionadas, mas tb quero mostrar a foto que gravei no banco.

Para carregar a tabela eu fiz isso:

public void CarregarTabela()   
    {   
  
        ResultSetTableModel modelo = null;   
        ResultSet rs = null;   
        String query = "";   
  
        //Connection con = null;   
        //Statement stmt = null;   
        Funcionario frame = new Funcionario();   
        query ="select funcpf as Cpf,funfoto as Foto,funnome as NomeLogin,funnomecompleto as Nome,funsenha as Senha,funendereco as Endereço,funbairro as Bairro,funcidade as Cidade,funestado as Estado,funcep as Cep,funtelresidencial as TelefoneResidencial,funtelcelular as TelefoneCelular,funcargo as Cargo,funemail as EMail from funcionario ORDER BY funcpf";   
  
        rs = frame.consultar(query);   
        modelo = new ResultSetTableModel(rs);   
        jTUsuario.setModel(modelo);   
  
        TableColumn col;   
  
        col = jTUsuario.getColumnModel().getColumn(0);   
        col.setPreferredWidth(400);   
        col = jTUsuario.getColumnModel().getColumn(1);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(2);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(3);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(4);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(5);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(6);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(7);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(8);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(9);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(10);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(11);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(12);   
        col.setPreferredWidth(1000);   
        col = jTUsuario.getColumnModel().getColumn(13);   
        col.setPreferredWidth(1000);   
  
       jTUsuario.getColumnModel().getColumn(1).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(1).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(2).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(2).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(4).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(4).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(5).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(5).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(6).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(6).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(7).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(7).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(8).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(8).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(9).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(9).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(10).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(10).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(11).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(11).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(12).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(12).setMaxWidth(0);   
       jTUsuario.getColumnModel().getColumn(13).setMinWidth(0);   
       jTUsuario.getColumnModel().getColumn(13).setMaxWidth(0);   
  
       this.setVisible(true);   
    }

Quando seleciono na tabela, o funcionário para aparecer os dados fiz algo assim:

private void jTUsuarioMousePressed(java.awt.event.MouseEvent evt) {   
  
 jFCPF.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),0).toString());   
   jTNome.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),2).toString());   
    jTNomCompleto.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),3).toString());   
    jPSenha.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),4).toString());   
    jTEndereco.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),5).toString());   
    jTBairro.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),6).toString());   
    jTCidade.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),7).toString());   
    jTEstado.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),8).toString());   
    jTCep.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),9).toString());   
    jTTelResidencial.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),10).toString());   
    jTTelCelular.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),11).toString());   
    jTCargo.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),12).toString());   
    jTEmail.setText(jTUsuario.getValueAt(jTUsuario.getSelectedRow(),13).toString());   
}

só que está faltando a imagem

O JLabel se chama: jLImagem

tinha feito algo assim:

byte[] bytes = (byte[]) jTUsuario.getValueAt(jTUsuario.getSelectedRow(), 1);   
jLImagem.setIcon(new ImageIcon(bytes));

Só que não está mostrando a imagem:

para gravar no banco estou fazendo o seguinte:

public void Imagem()
        {
        chooser.setAcceptAllFileFilterUsed(false);
        chooser.setFileFilter(filter);
        option = chooser.showOpenDialog(this);
        File file = chooser.getSelectedFile();
        resultado = file.getPath();
        jLImagem.setIcon(new javax.swing.ImageIcon(resultado));
        jLImagem.setMinimumSize(new Dimension(145, 122));
        } 

private void Salvar()
        {

    String txtCPF = jFCPF.getText().trim();
    String txtNome = jTNome.getText().trim();
    String txtNomCompleto = jTNomCompleto.getText().trim();
    String txtSenha = jPSenha.getText().trim();
    String txtEndereco = jTEndereco.getText().trim();
    String txtCidade = jTCidade.getText().trim();
    String txtEstado = jTEstado.getText().trim();
    String txtBairro = jTBairro.getText().trim();
    String txtCep = jTCep.getText().trim();
    String txtTelResidencial = jTTelResidencial.getText().trim();
    String txtTelCelular = jTTelCelular.getText().trim();
    String txtCargo = jTCargo.getText().trim();
    String txtEMail = jTEmail.getText().trim();

    ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
    byte buffer[] = new byte[4096];
    int bytesRead = 0;
    FileInputStream fi = null;
        try {
            fi = new FileInputStream(resultado);
            } 
            catch (FileNotFoundException ex) 
                {
                Logger.getLogger(ServUsuario.class.getName()).log(Level.SEVERE, null, ex);
                }
        try {
            while ((bytesRead = fi.read(buffer)) != -1) 
                {
                arrayOutputStream.write(buffer, 0, bytesRead);
                }
            }
            catch (IOException ex) 
                {
                Logger.getLogger(ServUsuario.class.getName()).log(Level.SEVERE, null, ex);
                }
        try {
            arrayOutputStream.close();
            } 
            catch (IOException ex) 
                {
                Logger.getLogger(ServUsuario.class.getName()).log(Level.SEVERE, null, ex);
                }

    int erros = 1;

    if(txtCPF.contains(".") || txtCPF.contains(".") || txtCPF.contains("-"))
                {
                txtCPF = txtCPF.replace(".", "").replace(".", "").replace("-", "");
                }

    if(txtCep.contains("-") )
                {
                txtCep = txtCep.replace("-", "");

                }
    if(txtTelResidencial.contains("(") || txtTelResidencial.contains(")") || txtTelResidencial.contains("-"))
                {
                txtTelResidencial = txtTelResidencial.replace("(", "").replace(")", "").replace("-", "");

                }
    if(txtTelCelular .contains("(") || txtTelCelular .contains(")") || txtTelCelular .contains("-"))
                {
                txtTelCelular = txtTelCelular.replace("(", "").replace(")", "").replace("-", "");

                }

    if((txtCPF.trim().equals("")) || (txtCPF.trim() == null))
        {
        JOptionPane.showMessageDialog(null, "Digite o CPF !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
        erros++;
        }
        else
            {
            if((txtNome.trim().equals("")) || (txtNome.trim() == null))
                {
                JOptionPane.showMessageDialog(null, "Digite o Nome !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                erros++;
                }
                else
                    {
                    if((txtSenha.trim().equals("")) || (txtSenha.trim() == null))
                        {
                        JOptionPane.showMessageDialog(null, "Digite a Senha !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                        erros++;
                        }
                        else
                            {
                             if((txtEndereco.trim().equals("")) || (txtEndereco.trim() == null))
                                {
                                JOptionPane.showMessageDialog(null, "Digite o Endereco !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                                erros++;
                                }
                                else
                                    {
                                    if((txtCidade.trim().equals("")) || (txtCidade.trim() == null))
                                        {
                                        JOptionPane.showMessageDialog(null, "Digite a Cidade !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                                        erros++;
                                        }
                                        else
                                            {
                                            if((txtEstado.trim().equals("")) || (txtEstado.trim() == null))
                                                {
                                                JOptionPane.showMessageDialog(null, "Digite o Estado !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                                                erros++;
                                                }
                                                else
                                                    {
                                                    if((txtBairro.trim().equals("")) || (txtBairro.trim() == null))
                                                        {
                                                        JOptionPane.showMessageDialog(null, "Digite o Bairro !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                                                        erros++;
                                                        }
                                                        else
                                                            {
                                                            if((txtCep.trim().equals("")) || (txtCep.trim() == null))
                                                                {
                                                                JOptionPane.showMessageDialog(null, "Digite o Cep !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                                                                erros++;
                                                                }
                                                                else
                                                                    {
                                                                    if((txtTelResidencial.trim().equals("")) || (txtTelResidencial.trim() == null))
                                                                            {
                                                                            JOptionPane.showMessageDialog(null, "Digite o Telefone Residencial !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                                                                            erros++;
                                                                            }
                                                                            else
                                                                                {
                                                                                 if((txtTelCelular.trim().equals("")) || (txtTelCelular.trim() == null))
                                                                                    {
                                                                                    JOptionPane.showMessageDialog(null, "Digite o Celular !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                                                                                    erros++;
                                                                                    }
                                                                                    else
                                                                                        {
                                                                                        if((txtCargo.trim().equals("")) || (txtCargo.trim() == null))
                                                                                            {
                                                                                            JOptionPane.showMessageDialog(null, "Digite o Cargo !","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                                                                                            erros++;
                                                                                            }
                                                                                            else
                                                                                                {
                                                                                                 if((txtEMail.trim().equals("")) || (txtEMail.trim() == null))
                                                                                                    {
                                                                                                    JOptionPane.showMessageDialog(null, "Digite o EMail!","Erro - Campo Obrigatório" , JOptionPane.ERROR_MESSAGE);
                                                                                                    erros++;
                                                                                                    }
                                                                                                }
                                                                                        }
                                                                                }
                                                                    }
                                                            }
                                                    }
                                            }
                                    }

                            }


                }
        }
                                if(erros ==1)
                                {

                                vo.setFunCPF(txtCPF);
                                funcionariovo.setFunCPF(txtCPF);
                                funcionariovo.setFunFoto(arrayOutputStream.toByteArray());
                                funcionariovo.setFunNomLogin(txtNome);
                                funcionariovo.setFunNome(txtNomCompleto);
                                funcionariovo.setFunSenha(txtSenha);
                                funcionariovo.setFunEndereco(txtEndereco);
                                funcionariovo.setFunCidade(txtCidade);
                                funcionariovo.setFunEstado(txtEstado);
                                funcionariovo.setFunBairro(txtBairro);
                                funcionariovo.setFunCep(txtCep);
                                funcionariovo.setFunTelResidencial(txtTelResidencial);
                                funcionariovo.setFunTelCelular(txtTelCelular);
                                funcionariovo.setFunCargo(txtCargo);
                                funcionariovo.setFunEmail(txtEMail);

                                if(funcionariomodel.verificarJaCadastrado(vo)==false)
                                {
                                funcionariomodel.incluirUsuario(funcionariovo);
                                limpaForm();
                                CarregarTabela();

                                  }

                                }
 }

No Banco Postgres a coluna está como funfoto em bytea.
Por Favor me ajudem, já pesquisei muito na internet mas não consigo fazer a imagem ser visualizada no jLabel.

Criado 17 de outubro de 2008
Respostas 0
Participantes 1