Manter dados alterados em JTable

3 respostas
J

Boas, eu tenho estado a desenvolver um projecto e tenho feito a interface gráfica no NetBeans. Tenho uma JFrame principal que contêm botões que ao clicar neles abrem outras JDialogs. O problema é o seguinte eu nessa JFrame principal tenho um botão chamado “Visitantes” que abre uma JDialog chamada “Visitantes”. Nesse JDialog “Visitantes” tenho um JTable, um botão que adiciona uma linha à JTable, um botão que remove uma linha seleccionada da JTable e um botão chamado Fechar para fechar esse JDialog. O código do botão Fechar tem a acção dispose();

O que eu queria era: imagine-se que eu executo o programa e a janela principal aparece, em seguida eu clico no botão “visitantes” e a janela com tabela abria. Nessa janela com tabela eu mudava um nome, na tabela, para “Carlos”. Se eu carregar no botão “fechar” a janela em que está a tabela é fechada, deixando só a janela principal a ser executada. A seguir se eu voltar a clicar no botão “visitantes” a janela com a tabela abre-se outra vez, e os dados que eu tinha alterado na tabela mantêm-se como estavam antes de a ter fechado. É um espécie de gravar, mas só enquanto está ser executado. Quando o programa fosse totalmente terminado os dados voltavam aos pré-definidos.
Eu sei que tenho que mudar algo no botão “visitantes” porque o que eu faço é: “new Visitantes().setVisible(true);” e isto o que faz é abrir uma janela totalmente nova com os dados considerados como que default, ou seja, como foram pré-definidos por mim.

imagem:

http://img215.imageshack.us/img215/91/semttulobt.png

Desde já, Obrigado.

Jaxz

3 Respostas

drsmachado

Primeiro, altere o defaultCloseOperation para Dispose_on_close.
Segundo, crie uma List para armazenar os dados temporários, ao abrir a tela, verifique se a lista está vazia ou preenchida, dando preferência à ela, caso tenha algum valor, senão, carregue o padrão.

J

Não percebi muito bem a sua segunda parte do post, é que sou ainda principiante e não sei fazer muito bem as ligações entre o GUI em java.
Será que podia explicar com código como fazer, se faz favor?

drsmachado

Ok, eu entendo.
Bom, para que a GUI do visitante seja aberta, o mesmo precisa clicar em um botão, certo?
A ação deste botão chama um construtor.
É preciso criar uma java.util.List e instanciá-la neste construtor, como vazia (na primeira chamada).
A partir da segunda, você verifica se ela existe e, então, como ela conterá dados, preencha a JTable com estes dados.

Criado 11 de junho de 2011
Ultima resposta 11 de jun. de 2011
Respostas 3
Participantes 2