Estou desenvolvendo um sistema, e nesse sitema eu preciso carregar imagens,
e o que está acontecendo é o seguinte, eu carrego uma imagem, e depois quando eu
a fecho e preciso abrí-la novamente aparece o seguinte erro:
O Garbage colector não conseguiu coletar seus objetos, então quando a sua aplicação solicitou alocação na memória esse erro lançado.
Como você está carregando a sua imagem? Pode postar o código?
[]s
Éberson
levimendes
publicvoidmostraImagemNaTela(){Imageimage;Filearquivo;intaltura=0,largura=0;JFileChooserabreDialogo=newJFileChooser("./dados");intretorno=abreDialogo.showOpenDialog(null);abreDialogo.setFileFilter(newFileNameExtensionFilter("Apenas gif, jpg, "+"jpeg e png","jpg","jpeg","gif","png"));try{if(retorno==JFileChooser.APPROVE_OPTION){arquivo=abreDialogo.getSelectedFile();image=ImageIO.read(arquivo);largura=image.getWidth(null);altura=image.getHeight(null);RedimenssionaImgred=newRedimenssionaImg();img=newImageIcon(red.redimImgPorAltura(image,alturaPainel-14));lblImagem.setSize(img.getIconWidth(),img.getIconHeight());painelRadiografia.add(lblImagem);lblImagem.setIcon(img);scrollPainelRad.setVisible(true);}}catch(Exceptione){JOptionPane.showMessageDialog(null,"Arquivo inválido.","Atenção",JOptionPane.WARNING_MESSAGE);}}
eberson_oliveira
Pelo que pude notar os atributos: abreDialogo, arquivo, image são atributos da instância e não do método, correto? Eles podem estar consumindo a sua memória.
Experimente utilizar a VisualVM para fazer um profile no seu sistema afim de descobrir que objeto está consumindo tantos recursos.
Em todo caso, sugiro que verifique se essas variáveis não podem ter escopo de método.