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.
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.