Ajuda com jframes e alternar entre eles sem perder dados

Estou com o seguinte problema: tenho um Frame como telaInicial e nele dois botões ‘cardapio’ e ‘promoções’.
no evento do botão cardápio eu faço do jeito que vi em um outro tópico:

tela1.setVisible(false); new Cardapio();

daí crio uma classe Cardapio com um construtor e nela faço o cadastro dos cardapios. Mas quando eu volto pra janela inicial os dados cadastrados se perdem.
Eu volto da seguinte forma:

frameCardapio.setvisible(false); TelaInicial.main(null)

eu queria uma forma de ocultar a janela do cardapio e depois chamar ela novamente, sem perder os dados cadastrados. De preferencia sem usar arquivo.
Alguem tem alguma sugestão?
obg

Por que você não deixa os dados armazenados em memória em uma variável static e toda vez que você for abrir a tela pede para setar os campos com os valores daquela variável.

Quando vc chama esse método TelaInicial.main(null), ele não cria uma nova instância das janelas?
Porque, se vc apenas fizer um setVisible(false), ele simplesmente deixa a janela invisivel.

[quote=victorp_farias]Por que você não deixa os dados armazenados em memória em uma variável static e toda vez que você for abrir a tela pede para setar os campos com os valores daquela variável.
[/quote]

Seria uma solução, mas não tenho idéia de como fazer isso.

[quote=eliangela]Quando vc chama esse método TelaInicial.main(null), ele não cria uma nova instância das janelas?
Porque, se vc apenas fizer um setVisible(false), ele simplesmente deixa a janela invisivel.

[/quote]
É exatamente isso que acontece, quando chamo está criando uma nova instância e apagando os dados da memória.
Mas eu não encontro um jeito de chamar a janela inicial sem criar outra instância… :?

use Singleton na sua classe que cria a janela que resolverá esse problema.

Obg, dei uma lida e parece que isso pode resolver o problema. :idea:
Vou tentar implementar e qualquer duvida posto o código aqui.

Problema resolvido.

Caso mais alguém tenha a mesma dúvida, consegui da seguinte forma:

Criei uma classe aplicação(que contém o main) e no construtor desta classe criei os 3 jframes: telaInicial,telaCardapio e telaPromoção. Criei mais duas classes: uma cardápio e a outra promoção para colocar os atributos e os métodos get e set.

A alternância entre os frames eu fiz usando apenas o setVisible(true/false) já que eles estavam todos na mesma classe, e não em construtores de outras classes como eu estva fazendo.
Ainda dentro da classe Aplicação criei uma classe Evento, que implementa todos os eventos.

Obrigado pela ajuda!