Java

esse byteimagem é os bytes que o banco retorna, através da consulta

assim que é o código:
private void jButtonSalvarImagemActionPerformed(java.awt.event.ActionEvent evt) {
byte[] byteImagem = null;
InputStream leitura = new ByteArrayInputStream(byteImagem);
try {
BufferedImage novaimagem = ImageIO.read(leitura);
jButtonSalvarImagem.setIcon(new ImageIcon(novaimagem));
} catch (IOException ex) {

 }

}

mais ele esta dando esse erro:
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at java.io.ByteArrayInputStream.(ByteArrayInputStream.java:106)
at telas.TelaMoradores.jButtonSalvarImagemActionPerformed(TelaMoradores.java:683)
at telas.TelaMoradores.access$800(TelaMoradores.java:26)
at telas.TelaMoradores$9.actionPerformed(TelaMoradores.java:239)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

esse código pra mim não deu , o que faço???

eu estou usando esse código:
pat.setBytes(8, mod.getImagem());

e no banco eu estou utilizando bytea que eu mandei a foto pra você ver

ok

Aqui é o meu projeto ele está no NetBeans

https://mega.nz/#F!j7IBkI7I!mOyNo8Y7bUKZkAogxWqv7g


aonde esta a seta minha eu não poderia usar porque eu tinha feito o código de adicionar olha:
private void jButtonAdicionarImagemActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser arquivo = new JFileChooser();
arquivo.setDialogTitle(“Selecione uma foto”);
arquivo.setFileSelectionMode(JFileChooser.FILES_ONLY);

    int opc = arquivo.showOpenDialog(this);
    if(opc == JFileChooser.APPROVE_OPTION){
        File file = new File("caminho");
        file = arquivo.getSelectedFile();
        String filename = file.getAbsolutePath();
        jTextFieldPath.setText(filename);
        
        ImageIcon imagem = new ImageIcon(arquivo.getSelectedFile().getPath());
        jLabelImagem.setIcon(new ImageIcon(imagem.getImage().getScaledInstance(jLabelImagem.getWidth(), jLabelImagem.getHeight(), Image.SCALE_DEFAULT)));           
    }
           
}                      

eu não poderia só fazer o botão de salvar imagem ???

você poderia explicar de uma outra forma não consegui entender.

Bom a forma que expliquei não específica o arquivo que recebe do gerenciador de arquivo.

O adiconar imagem e o salvar imagem seria a mesma coisa.
Ou só salvaria se fosse no salvar imagem

eu mudei o código para esse:
JFileChooser se = new JFileChooser();
se.setFileSelectionMode(JFileChooser.FILES_ONLY);
int estado = se.showOpenDialog(null);

    if(estado == JFileChooser.APPROVE_OPTION){
        try {
            fis = new FileInputStream (se.getSelectedFile());
            this.longitudBytes = (int) se.getSelectedFile().length();

            Image icono = ImageIO.read(se.getSelectedFile()).getScaledInstance(jLabelImagem.getWidth(), jLabelImagem.getHeight(), Image.SCALE_DEFAULT);

            jLabelImagem.setIcon(new ImageIcon(icono));
            jLabelImagem.updateUI();

        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex){
            ex.printStackTrace();
        }
    }

e eu queria um código que ajudasse a colocar ele dentro do banco de dados.

Para lançar no banco precisa converter em array de bytes .
E eu preciso armazenar a imagem temporariamente para mandar para o banco. O que faço aqui:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ImageIO.write(imagem,"JPEG",baos);
            byteImagem=baos.toByteArray();

Bom se você quiser também permitir uma função para alterar a imagem você teria que verificar se a imagem é existente no banco

Bom poderia fazer só o botão salvar a imagem sim

eu estou usando esse site de base o que você acha?
https://respostas.guj.com.br/39233-como-salvaralterarler-uma-imagem-no-banco-de-dados
ele é bom ou você acha melhor não

Excelente agora entendi o que você queria fazer.

Sim é ótimo usar sites que quanto mais ajuda tiver melhor é

eu estou utilizando esse código:
private FileInputStream Imagem;
public FileInputStream getImagem() {
return Imagem;
}

public void setImagem(FileInputStream Imagem) {
    this.Imagem = Imagem;
}

eu teria que usar o private byte[ ] Imagem; também.

Vou adaptar o meu código para o que você quer.E testar depois te falo

Sim pois o banco só seu só está aceitando os dados em bytes[]

ok fico na espera então…

oi você esqueceu de mim com código que você tinha prometido ontem???

Não é que estou fazendo um programa baseado na imagem que me mostrou