Resolvido - Problema com boolean

2 respostas
H

Amigos, estou com uma dúvida

tenho um FramePrincipal neste frame possui um boolean verifica

quando eu abro um novo frame

Frame frame = new Frame(verifica);

ele passa a condição para o proximo frame

no proximo frame eu recebo ele…

this.verifica = verifica;

acontece que quando eu seto esse boolean como true ou false, e eu verifico ele no FramePrincipal, ele nao está atualizando

testei com JtextField por exemplo e ele está passando as informações de um frame para o outro corretamente,

face a isso, não tem como atualizar boolean entre os frames??

obrigado a todos desde já!

2 Respostas

ViniGodoy

Apenas objetos são passados por referência em Java. Variáveis de tipo primitivo são copiadas (passagem por valor).

Um xunxo para isso é criar uma classe assim:

public class BooleanHolder {
    public boolean valor;
}

E passar isso como parâmetro. Mas geralmente isso não é necessário. Você pode usar o boolean por valor no outro JFrame e criar um método de get para retornar o valor para quem o chamou.

Outra possibilidade é passar a referência de um Frame para o outro, e inclui um método no frame um que receba o valor de volta.

public class Frame1 {
   public void atualizarVerifica(boolean verifica);
   public boolean getVerifica() { return verifica; }
}

public class Frame2 {
   Frame1 origem;
   public Frame2(Frame1 origem) {
       this.origem = origem;
   }

   public void alterarVerifica() {
      origem.atualizarVerifica(true);
   }
}
H

hummmm obrigado pelas explicacoes

Criado 28 de novembro de 2013
Ultima resposta 28 de nov. de 2013
Respostas 2
Participantes 2