Imagens de um Objeto

Eu criei uma classe chamada pessoa, e eu tenho outra classe janela, e nessa classe tem um Jlabels que recebera as imagens dos objetos criado da classe pessoa, so que nao sei como funciona isso, o Jlabels vai receber uma ImagenIcon ou uma Imagen?

class pessoa{
    
public Image foto;
public string nome;

}

class janela extends Jframe{

pessoa Joao = new pessoa();

Jlabel foto;

public janela() {
		this.montajanela();
		setSize(800, 600);
	}

private void montajanela() {
     Joao.foto = "imagens//foto01.jpg";
     JPanel panel = new JPanel(null);
     foto = new Jlabels("Joao.foto");
     foto.setBounds(20, 20, 40, 40);            
     panel.add(foto);
     getContentPane().add(panel);

	}

Pode utilizar um ImageIcon. Você pode passá-lo tanto no construtor do JLabel quanto no método setIcon.

Uma dica: em Java sempre nomeie suas classes iniciando com letra maiúscula e as suas variáveis com letras minúsculas… Ao invés de pessoa, Pessoa. Ao invés de janela, Janela. Ao invés de Joao, joao.

ok, mais como eu fasso pra atribuir essa imagem?

Pessoa joao = new Pessoa();
joao.foto = "img//foto.jpg";

ou

joao.foto.setImageIcon("img//foto.jpg");

depende do tipo que você está usando no atributo foto da classe Pessoa… No caso vi que você usa String, dê uma olhada na documentação do ImageIcon e veja o que ele aceita como parâmetro no constructor…

Mas tente não misturar as coisas… Uma coisa é o atributo foto da classe Pessoa (que poderia estar encapsulado), outra coisa é a foto representada no seu JLabel.