Arraylist com telas de Swing, perco o Conteúdo ao fechar a Tela

6 respostas
fsfnit

Fala pessoal.
Tenho uma pequena APP com Swing.
São 3 classes:

Cliente: atributos de cliente

JanelaMain: Janela de menu, que possui botões para abrir outras telas.

JanelaCadastro: Janela onde se cadastra os Clientes conforme os campos preenchidos.

O que acotnece é o seguinte:
Rodo a App, a minha main é a JanelaMain.
Clico para Cadastrar Clientes, que chama a tela JanelaCadastro.
Na janela Cadastro vo incluindo normalmente os clientes no ArrayList, mas se eu fechar a tela, perco os dados do Arraylist.
Queria manter os dados do ArrayList enquanto a APP estivesse no ar, ou seja, enquanto a JanelaMain estiver aberta, o conteúdo do Arraylist permance.

Obrigado pela ajuda desde já.

6 Respostas

davidbuzatto

Olá. Se vc estiver trabalhando com banco de dados é bom vc carregar sua lista quando abrir a janela.
Já se vc estiver fazendo essa app só para testar ou então é algum trabalhinho da faculdade, ao invés de fechar o JFrame, apenas sete-o como invisível (setVisible( false ) ) e quando for abrí-lo de novo, sete-o como visível (setVisible( true ) ). Se vc estiver usando o setDefaultCloseOperation, muda a constante de JFrame.EXIT_ON_CLOSE para JFrame.HIDE_ON_CLOSE.

Até mais!

Marky.Vasconcelos

Quando você fecha a janela você termina aquele objeto, para evitar perder o ArrayList faça-o static assim qualquer janela podera acessar a mesma lista

davidbuzatto

Por favor, não faça isso. Não acho que essa seja uma razão para fazer com que a lista seja estática. Se quiser manter o objeto vivo, ou faça como eu falei ou então vc pode seguir a idéia do Mark, mas crie um Objeto e mantenha uma referência dele no seu frame principal ai ele não será excluído.

Até mais!

Marky.Vasconcelos

Desulpa passar uma idéia não recomendável, é que, eu só queria te passar mais opções, acho que você vai aprender se dar melhor com isso para frente.

Se você quiser, você pode usar um Single da JFrame já que normalmente ninguém abre duas janelas iguais.

fsfnit

Obrigado pela ajuda.
Vou testar os 2 métodos que vcs me deram idéia, como é p/ estudo, os 2 modos são bem válidos.
Muito obrigado pela ajuda.

VitorX

se o seu problema é ter que, cada vez que abrir o programa, instanciar os objetos na array tudo denovo, instancia eles na main, ai toda vez que abrir o programa ja tera elementos dentro da sua array list.

Criado 14 de novembro de 2007
Ultima resposta 16 de nov. de 2007
Respostas 6
Participantes 4