Problema com JFileChooser[Ŕesolvido]

4 respostas
brunorota

I ae galera
Estou com o seguinte probleminha
Eu tenho um JFileChooser que abre uma imagem

Quando eu abro essa imagem, eu redimenciono ela e salvo ela em disco e depois adiciono ela em um ImageIcon para depois setar o ImageIcon em um JLabel
Depois q eu seto a primeira, c eu abrir de novo, ele faz o mesmo processo sobrescrevendo a foto redimencionada antiga pela foto nova, soh q ae eu seto ela no JLabel mesmo assim continua a foto antiga, ela nao muda

Segue o código abaixo

if (e.getSource() == btn) {
			
			 StringBuffer log = null;
			 
			 JFileChooser fc = new JFileChooser();
			 
		        int returnVal = fc.showOpenDialog(null);

		        if (returnVal == JFileChooser.APPROVE_OPTION) {
		            File file = fc.getSelectedFile();
		            
		            BufferedImage image = null;
					try {
						image = ImageIO.read(file);
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						System.out.println("ARQUIVO NÃO EXISTENTE");
						return;
						//e1.printStackTrace();
					}
					BufferedImage novaImagem = new BufferedImage(200,200, image.getType());  
					Graphics2D g2d = novaImagem.createGraphics();  
					g2d.drawImage(image, 0, 0, 200, 200, null);  
					g2d.dispose();  
					
					try {
						ImageIO.write(novaImagem, "JPG", new File("teste.jpg"));
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
		            
					File arquivo = new File("teste.jpg");
					
		            String s = arquivo.toString();
		            System.out.println(s);
		            ImageIcon i = new ImageIcon(s);
		            label.setIcon(i);
		            
		            //This is where a real application would open the file.
		            //log.append("Opening: " + file.getName() + "." + newline);
		        } else {
		            //log.append("Open command cancelled by user." + newline);
		        }
		        
		        
		   }

Creio eu q esta acontecendo isso pq a imagem eh sobrescrevida, soh q antes de eu carregar a imagem no JIcon preciso de um comando para atualizar a pasta sei lah

Se alguem souber oq esta acontecendo e puder ajudar

Atenciosamente

4 Respostas

ViniGodoy

Já tentou dar um label.repaint() depois do label.setIcon?

brunorota

Ola viny

Eu tentei agora nao deu certo nao

Tipo o label soh nao atualiza quando eu diminuo o tamanho da imagem

Mas quando eu abro uma foto direto sem diminuir a imagem e seto no label, o label atualiza normal, pegar a foto direto ele vai atualizando normal
O problema eh quando eu gravo a imagem reduzida e sobrescrevo ela, acho q o problema esta ae

dstori

Ei amigo, em vez de gravar um arquivo, cria um ImageIcon a partir do bufferedimage:

ImageIcon i = new ImageIcon(novaImagem);
brunorota

Eii amigo
Funcionou direitinho

Muito obrigado

Muito obrigado a todos q deram atenção ao meu tópico

Criado 7 de agosto de 2009
Ultima resposta 10 de ago. de 2009
Respostas 4
Participantes 3