Visualizar uma imagem do arquivo

Olá galera! Sou iniciante em java e estou desenvolvendo um sistema de cadastro (nome, tel, endereço, …) e um dos items do cadastro é a inserção de uma foto. Esta foto tem que ser adicionada do arquivo e visualizada num JPanel independente. Estou conseguindo carregar a imagem numa boa, o problema é visualizá-la depois. segue o código:

import java.awt.*;
import javax.swing.*;
public class Cliente extends JFrame {
   private static final long serialVersionUID = 1L;

   private String opcImage[] = {"", "Carregar foto", "Ver foto"};
   String foto;
   JPanel painel1;
   private JComboBox fotoC;

   public Cliente(){
      Container quadro = getContentPane();
       SpringLayout layout = new SpringLayout();
       
       painel1 = new JPanel(layout);

       fotoC = new JComboBox(opcImage);
			   fotoC.setEnabled(false);
			   fotoC.addActionListener(new ActionListener(){
				   public void actionPerformed(ActionEvent e){
					   foto = (String)(fotoC.getSelectedItem());
					   
					   if (foto == "Carregar foto"){
						   new CarregarImagem();
					   }
					   if(foto == "Ver foto"){
						  CarregarImagem IMG = new CarregarImagem();
                                                                                                           IMG.painel(); // Tá dando erro
					   }
				   }
			   });
			   painel1.add(fotoC);
                                                        layout.putConstraint(SpringLayout.WEST, fotoC, 532, SpringLayout.WEST, painel1);
			   layout.putConstraint(SpringLayout.NORTH, fotoC, 170, SpringLayout.NORTH, painel1);
                                                        
                                                        setSize(700, 600);
                                                        quadro.add(painel1);
                                                        setVisible(true);
		                     setResizable(false);
              }
       public static void main(String[] args) {
            new Cliente();
   }   
}

E esta é a classe que estou chamando para carregar a imagem:

import java.awt.*;
import javax.swing.*;

public class CarregarImagem extends JFrame{
	private static final long serialVersionUID = 1L;
	
	public JLabel imagem;
	public JFileChooser chooser = new JFileChooser();
	public JPanel painel;
	int opcao;
        
	public CarregarImagem(){
		super("Imagem");
		
		Container c = getContentPane();
		FlowLayout lay = new FlowLayout();
		painel = new JPanel(lay);
		
		opcao = chooser.showOpenDialog(getParent());
		
		if(opcao == JFileChooser.APPROVE_OPTION) {
			String ht  = chooser.getSelectedFile().getName();
			Icon foto = new ImageIcon(ht);
			imagem = new JLabel(foto);
		}
		else{
			System.exit(0);
		}
		
		painel.add(imagem);
		
		c.add(painel);
		setResizable(false);
		setSize(700,600);
		setVisible(true);
	}
}

Quero que quando o item “Ver foto” for clicado, apareça a imagem carregada no painel da classe CarregarImagem.

Desde já agradeço a todos!

Ao ínves de usar

chooser.getSelectedFile().getName()

utilize

chooser.getSelectedFile().getPath() .

Você está pegando somente o nome do arquivo (getName()) e não o caminho (getPath()).

Abraço!