Fórum Problema com envio de foto #401955

30/05/2011

0

Olá companheiros, sou iniciante em java, e estou tendo um probleminha que me parece ser coisa simples, mas quem não tem tanta experiencia gera certos atrasos, mas enfim, negocio é o seguinte tenho um formulário na onde quero inserir a foto do cliente q ta sendo cadastrado, ae tenho um campo do tipo texto, onde eu digito o nome da imagem e sua extensão, só que ele não traz essa imagem, veja uma parte do código abaixo,

                tf_foto.setText(con_cliente.resultset.getString("foto"));
                lbFoto.setIcon(new ImageIcon("/Estoque/images/"+tf_foto.getText()));



Observação.:eu criei uma caixa de dialogo tambem, pra que o usuario possa procurar pela imagen, e indiquei esse mesmo diretório para ele abrir, só que ele abre no meus documentos, não no diretorio mostrado no código acima....
Eduardo Oliveira

Eduardo Oliveira

Responder

Posts

30/05/2011

Davi Costa

A foto selecionada pelo usuário veio dessa pasta(/Estoque/images/"+tf_foto.getText())??

Que tal tratarmos como File antes de passarmos para ImageIcon. Depois que estiver tudo ok vc refatora para ImageIcon.

Se abrir em meu documentos não tem problema, vc trata pegando o caminho inteiro até a imagem, ou pega o array de bytes e salva essa imagem em uma pasta do seu programa.


Att Davi
Responder

Gostei + 0

30/05/2011

Eduardo Oliveira

intão minha dúvida está ae. porque no campo de texto que eu entro com o nome da imagem e sua extensão ta beleza, ele até salva no banco exemplo. FOTO = semfoto.jpg isso no banco, só que no formulário em si, ele não me retorna ela, ela preenche o campo com o nome da imagem, mas não a insere na label.....
Responder

Gostei + 0

30/05/2011

Davi Costa

No banco ele precisa salvar não só o nome do arquivo, mas todo o caminho. Por exemplo C:\imagem.jpg



att Davi
Responder

Gostei + 0

30/05/2011

Robson Teixeira

Tente usar o JFileChose pois com ele vc envia o arquivo e pode obter-lo como File e apartir disso vc obtem o diretorio dele todo.   att  robson
Responder

Gostei + 0

30/05/2011

Eduardo Oliveira

Então cheguei a utilizar o FileChos, só que mesmo assim, a imagem não carrega..... se poderem dar uma analisada no código ficaria grato;....

    private void button_fotoActionPerformed(java.awt.event.ActionEvent evt) {                                            
       try
       {
           JFileChooser busca_foto = new JFileChooser();
           busca_foto.setCurrentDirectory(new File("/Estoque/images/"));
           busca_foto.setDialogTitle("Carregar imagen do cliente");
           busca_foto.showOpenDialog(this);
           String foto = ""+busca_foto.getSelectedFile().getName();
           tf_foto.setText(foto);
           lbFoto.setIcon(new javax.swing.ImageIcon("/Estoque/images"+tf_foto.getText()));
       }
       catch(Exception erro)
       {
            // JOptionPane.showMessageDialog(null,"Não foi possivel inseriri foto" +erro);
       }
    }

Responder

Gostei + 0

30/05/2011

Davi Costa

só vai funcionar se a imagem estiver dentro desse diretório /Estoque/images/.
Eu aconselharia vc a salvar a imagem nesse diretório se ela não estiver nela e depois salvar o registro da foto no banco, do diretório /Estoque/images/.
Para isso funcionar não deve setar o diretório amarrando como vc fez /Estoque/images/, vai ter que deixar a do arquivo selecionado.

att Davi
Responder

Gostei + 0

30/05/2011

Eduardo Oliveira

então a imagem esta dentro desse diretório quanto a isso tenho certeza, é que tipo estou fazendo seguindo umas video aulas, no que eu vi no video, roda beleza desse mesmo jeito, só que aqui não esta indo....
Responder

Gostei + 0

30/05/2011

Davi Costa

Hm.. sakei,mas gera alguma Exception?

Att Davi
Responder

Gostei + 0

30/05/2011

Eduardo Oliveira

se eu descomentar a linha do catch. ele da o seguinte erro

"java.lang.nullPointerException" mas ele só da essa mensagem, si eu clicar no cancelar da caixa de diálogo, caso eu escolha o arquivo, e clique em abrir, ele ja passa no nome dele pro textField, mas não insere ele no label...
Responder

Gostei + 0

30/05/2011

Davi Costa

Faz o seguinte então posta o StackTrace inteiro para gente analisar.

Att Davi
Responder

Gostei + 0

30/05/2011

Eduardo Oliveira

sou iniciante, mas se entendi o que vc me disse, é isso que vc precisa para analisar??

run:
java.lang.NullPointerException
       
        at cadastros.cad_cliente.button_fotoActionPerformed(cad_cliente.java:1195)
        at cadastros.cad_cliente.access$700(cad_cliente.java:25)
        at cadastros.cad_cliente$8.actionPerformed(cad_cliente.java:412)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6289)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6054)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4652)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
        at java.awt.EventQueue.access$000(EventQueue.java:85)
        at java.awt.EventQueue$1.run(EventQueue.java:603)
        at java.awt.EventQueue$1.run(EventQueue.java:601)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:617)
        at java.awt.EventQueue$2.run(EventQueue.java:615)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 40 segundos)
Responder

Gostei + 0

30/05/2011

Davi Costa

O erro está nessa linha cad_cliente.java:1195,
posta ele para gente ver o que pode estar vindo nulo, ou debuga e já descobre o que está vindo nulo.

Att Davi
Responder

Gostei + 0

30/05/2011

Eduardo Oliveira

o código da linha 1195 é esse.....


         String foto = ""+busca_foto.getSelectedFile().getName();


Responder

Gostei + 0

30/05/2011

Davi Costa

Beleza, provavelmente esse cara está nulo:
busca_foto.getSelectedFile()
att Davi

Responder

Gostei + 0

30/05/2011

Eduardo Oliveira

intão eu devo passar algum valor no getSelectedFile()??
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar