Trabalhando com variavel

2 respostas
L

blz galera,

primeiramente me desculpe a ignorância e obrigado pela atenção, estou precisando do seguinte:

Eu tenho 3 frames: frame01, frame02, frame03....

preciso pegar o valor de uma variavel que esta declarada no frame 01 desta forma:

public static String janela; 

//metodos get e set

  public static String getJanela() {
        return janela;
    }

    public static void setJanela(String janela) {
        AreadeTrabalho.janela = janela;
    
}

no frame 02 eu preciso mudar o valor desta variavel, Exemplo: eu preciso passar o valor "cadastro" para a variavel "janela" do frame01, e para fazer isso estou usando o metodo set.

e o problema é que eu preciso pegar esse valor(cadastro) que foi setado pelo frame02 na variavel do frame01, eu preciso pegar o valor dela no frame03 e não estou conseguindo.

Como eu faço pessoal? eu preciso instancia ela em qual classe? eu estou instanciando em todas e por isso esta ficando null;

Obrigado pessoal e desculpe-me a forma de pergunta.

2 Respostas

asousaj

Basta que o frame em questão tenha referencia ao atributo do objeto frame1 … acho que não ficou claro, segue uns códigos para exemplificar. Removi métodos dispensáveis para a explicação.

public class FramePrincipal {
	private Frame1 frame1;
	private Frame2 frame2;
	private Frame3 frame3;

	public FramePrincipal() {
		frame1 = new Frame1();
		frame2 = new Frame2(this);
		frame3 = new Frame3(this);
	}

	public void teste() {
		frame2.alteraFrame1Janela();
		frame3.lerFrame1Janela();
	}

	public Frame1 getFrame1() { return frame1;	}
	public void setFrame1(Frame1 frame1) { this.frame1 = frame1; }

	public static void main(String[] args) {
		FramePrincipal framePrincipal = new FramePrincipal();
		framePrincipal.teste();
	}
}
public class Frame1 {
	String janela;
	public String getJanela() {return janela;}
	public void setJanela(String janela) {this.janela = janela;	}
}
public class Frame2 {
	FramePrincipal framePrincipal;

	public Frame2(FramePrincipal framePrincipal) {
		this.framePrincipal = framePrincipal;
	}

	public void alteraFrame1Janela() {
		System.out.println("Método em Frame2 alterando texto da variavel cadastro em Frame1");
		framePrincipal.getFrame1().setJanela("cadastro");
	}
}
public class Frame3 {
	FramePrincipal framePrincipal;

	public Frame3(FramePrincipal framePrincipal) {
		this.framePrincipal = framePrincipal;
	}

	public void lerFrame1Janela() {
		System.out.print("Frame3 lendo a variavel janela do Frame1: ");
		System.out.print(framePrincipal.getFrame1().getJanela());
	}
}
L

muito obrigado mesmo parceiro…assim que for possível vou estar testando e coloco o resultado.

Criado 10 de dezembro de 2013
Ultima resposta 11 de dez. de 2013
Respostas 2
Participantes 2