Problema Destino da Imagem

4 respostas
Vodga

Galera, no banco esta salvando o destino como:

file:/C:/Users/Douglas/Desktop/Academia1/build/classes/ViewImagens/no_photo.png

e o problema é que quando eu pego esse destino do banco de dados para mostrar uma imagem, ele não mostra imagem nenhuma por causa desse file:/
as que estao a partir do C:/ funcionam perfeitamente

public void inserirFoto() {
        jFileChooser1.showOpenDialog(this);
        File arquivo = jFileChooser1.getSelectedFile();
        if (arquivo != null) {
            foto = (arquivo.getPath());
            jLfoto.setIcon(new ImageIcon(foto));
            foto = (jLfoto.getIcon().toString());
            

        } else {
             jLfoto.setIcon(new ImageIcon(getClass().getResource("/ViewImagens/no_photo.png")));  
            foto = (jLfoto.getIcon().toString());
        }
    }

4 Respostas

R

Acredito que o problema esteja no código que salva o caminho no banco.
Você tem como passar este código?

Vodga
public void cadastro() {
        try {
            Variavel c1 = new Variavel();
            c1.setNome(jTnome.getText());
            c1.setVencimento(new java.sql.Date(jTvencimento.getDate().getTime()));
            c1.setMensalidade(Double.parseDouble(jTmensalidade.getText()));
            c1.setObservacoes(jTAobservacoes.getText());
            c1.setImagem(jLfoto.getIcon().toString());
            
            ClientesDAO dao = new ClientesDAO();
            dao.adiciona(c1);
        } catch (SQLException ex) {
            Logger.getLogger(GerenciarClientes.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
V

olha vai uma dica no banco de dados não guarde o diretório completo da imagem (C://user/pasta/img.jpg) guarde o sempre o diretório relativo dela (…/pasta/img.jpg) isso é vantajosos se você for querer acessar essas informações em outro computador (que possua as fotos) mas o banco de dados seria o mesmo ou uma copia do mesmo, mas a informações armazenadas nele não seria necessário mudar nada

além disse para está aparecendo esse file foi porque você botou ele na hora de guardar no banco de dados, da uma olhada no teu código, se você está usando a classe “java.io.File” use o metodo

file.getAbsolutePath() ele lhe dará o caminho completo do arquivo que você está tratando

obs: você pode guarda no banco de dados que nem eu faço geralmente nos meus projetos, só o nome do arquivo sem nada a mais, pois eu sei que todas as imagens do projeto sempre estarão em uma determinada pasta e uso o caminho relativo se for para apontar para alguma pasta que esteja dentro dessa pasta das imagens

Detalhe : imagine se você muda o projeto de pasta se você guarda o caminho completo vai da ruim só por você ter mudado o projeto de pasta, por isso usar o caminho relativo pode ser a melhor opção

Vodga

valeu cara, muito obrigado pela sua explicação, testarei esse código logo mais

Criado 1 de julho de 2013
Ultima resposta 2 de jul. de 2013
Respostas 4
Participantes 3