Acessar Classes ja instanciada

Estou começando a estudar Java e já tive muitas duvidas a maioria delas consegui achar resposta aqui no fórum.
So que desta vês não achei nada eu tenho o seguinte ambiente.:

Tem uma aplicação com 2 Jframes e uma classe que coloca um icone no Systray.

Inicio a aplicação instanciando meu forme principal numa classe main.

NewJFrame telainicial = new NewJFrame();
telainicial.setVisible(true);

No meu forme principal tenho um jButton que eu chamo uma classe que coloca um icone no systray

Faço da seguinte forma.
TestTray eu = new TestTray(); // instancia a classe que contem um construtor que inicia a mesma e coloca o incone na Systray
this.setDefaultCloseOperation(1);
this.dispose(); // saio com o formulário de sena o forma poderia ser hide também.

Agora meu problema.

Na classe systray eu chamou novamente o formulário NewJFrame so que eu não queria ter que instancialo novamente e abrilo como se fosse um novo forme eu queria usar meu objeto telainicial dentro da classe systray … teria como ???

Cara,

você pode passar a referência da classe já instanciada como parâmetro da classe que você irá utilizar para invocar a primeira.

Seria assim:

//na classe que você vai invocar, enviando a referência da classe atual
class Atual {

 ...

 metodoDaOutraClasse( this );

 ...
}

e na classe que irá receber você teria;

class OutraClasse {

 ...

 metodoDaOutraClasse( Atual at ) {

 //invocar membros da classe já instanciada
 at.<>;

}

Bom, se foi o quê eu entendi pode ser isso.

Abs.

Singleton é o caminho :smiley:
Dê uma pesquisada sobre o padrão para ficar com base, ai vai um código de exemplo:


public class MyFrame extends JFrame {

  public static MyFrame frame;
  
  private MyFrame() {
  }
  
  public static MyFrame getInstance() {
      if(frame == null) {
            frame = new MyFrame();
      }
      return frame;
  }
}

Note que você não vai mais chamar o new para pegar uma instância do seu frame… Ao invés disse você vai chamar o método getInstance, que vai assegurar que apenas uma instância da classe seja criada.

Bem vindo ao forum! :smiley:

Talvez fosse melhor vc incluir um post com o código para facilitar o entendimento, não esqueça de utilizar a tag CODE.

[]'s

E ai pessoal Muito Obrigado pela atenção pelo que eu vi deu uma pesquisada em Singleton e vai resolver meu problema… Obrigado a todos… fui