Alterar de uma classe Y (instanciada por uma classe X) campo não estatico de uma classe X

5 respostas
R

Amigos GUJ,

Tenho duas classes :
Classe X cria um JLabel e instancia a classe Y.
Classe Y altera o JLabel da classe X.

Como posso contornar o problema?

O código abaixo tenta ilustrar a situação...

import javax.swing.JLabel;

public class ClasseX {
    private final JLabel novoJlabel;

    public ClasseX() {
		novoJlabel = new javax.swing.JLabel();
		ClasseY novaClasseY = new ClasseY();
	}
}

public class ClasseY {

	public ClasseY(){
		ClasseX.novoJLabel.setText("Não funciona... Para a Classe Y a ClasseX não existe e muito menos seu novoJLabel");
	}
}

Obrigado!!!!

5 Respostas

marcoslogan

Mas me diga uma coisa, quando você diz altera o jLabel, você está se referindo ao texto exibido pelo jLabel certo?

marcoslogan

Mas como a classeY vai ver jLabel se o mesmo está privado?

pmlm

Tens duas hipóteses:

No constructor da ClasseY, ou passas como argumento a ClasseX ou passas apenas o JLabel

Iceguy
public class ClasseY{
  
public ClasseY(JLabel janelaX){
  janelaX.setText("Testa assim pra ver se funciona.");
}

//Bloqueia o construtor vazio.
private ClasseY(){}

}
R

@pmpm :

Obrigado!
Era exatamente isso que estava procurando!!!

Criado 3 de janeiro de 2012
Ultima resposta 4 de jan. de 2012
Respostas 5
Participantes 4