Atualização de Imagem JPanel

Bom dia gujeiros! Já estive olhando pelos foruns do guj, mas apesar das dicas, ainda sim não conegui fazer a atualização de imagem de meu JPanel. Devido a isso, estou apelando a ajuda de vocês! Bom, é o seguinte: tenho dois JPanel, um como se fosse a moldura para receber a imagem e o outro a propria imagem. Com as dicas dos amigos do guj eu consegui retirar a imagem do JPanel moldura, mas não consigo adicionar uma nova imagem. Será que podem me dar uma dica de onde estou errando? Abaixo segue o código!

Classe onde retorna um JPanel com a imagem.

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class ImagemJPanel extends JPanel{

	//BufferedImage imagem1;
	Image imagem = null;
	public ImagemJPanel(String diretorio){		
		try{
			//imagem1 = ImageIO.read(new File("C:/Users/auxiliar/Desktop/imagens/ciencia.jpg"));
			imagem = Toolkit.getDefaultToolkit().getImage(diretorio);
		}
		catch(Exception e){
			JOptionPane.showMessageDialog(ImagemJPanel.this, "Ocorreu um erro durante o carregamento da fot","ERRO",JOptionPane.WARNING_MESSAGE);
		}
	}
	protected void paintComponent(Graphics g){
		super.paintComponent(g);
		if (imagem != null){
			g.drawImage(imagem, 05, 10, (this.getWidth()-10), (this.getHeight()-12), this);
		}
		else{
			g.drawString("Sem Foto!", 30, 80);
		}
	}

}

Ouvinte do botão, onde é feito a troca de imagem no JPanel

botaoVisualizar.addActionListener(new ActionListener(){			
			public void actionPerformed(ActionEvent e){
				if(campoPath.getText().equals("")){
					JOptionPane.showMessageDialog(null, "O campo Foto deve ser preenchido!","ATENÇÃO!", JOptionPane.WARNING_MESSAGE );	
				}
				else{
					System.out.println(campoPath.getText());
					painelFotoCientista.remove(fotoCientista);
					repaint();
					invalidate();
					fotoCientista = new ImagemJPanel(campoPath.getText());
					painelFotoCientista.add(fotoCientista);
					invalidate();
					repaint();	
				}
			}
		});