Melhor forma de fazer?

5 respostas
fernandopaiva

Opa galera,

Gostaria de saber a opinião de vocês para q assim eu possa chegar a uma maneira simples e eficiente de realizar o que preciso.

É o seguinte, eu tenho varios panels cada 1 com um nome diferente panel1 ate panel50, quando clico com o botao direito do mouse em cima de algum deles eu abro um popup e nesse popup eu tenho a opcao de ativar panel, quando eu ativo o panel ele altera a cor background.verde e tem um componente jlabel que muda o texto para ativo. Até aqui td bem esta td funcionando conforme manda o figurino.

Agora, eu preciso que quando eu feche o sistema com System.exit(0) e abra de novo, ele me traga todos aqueles panels que estão ativos, ou seja, que antes de fechar o sistema eles estavam ativos com e jlabel.settext(ativo) e background.verde.

Sei que preciso criar uma tabela no BD para que isso ocorra, mas quais campos devo adicionar no BD e depois para recuperar esse campos e fazer com que meus jpanels fiquem ativos como estavam antes de fechar o sistema.

espero que tenham entendido o que preciso nesse momento, se puderem ajudar, agradeço !

5 Respostas

wilds87

Eu faria com um XML, quando você sair do programa, grava nele os ativos e quando iniciar lê desse XML.
Bem simples. Se é para ser simples… hehe

Pode ser assim?

fernandopaiva

wilds87, mas eu prefiro fazer no banco pcausa de seguranca, impedindo que o arquivo se apague ou algo assim.

Mas me passa um exemplo de como isso seria feito em um arquivo.xml.

obrigado.

E

Já tentou gravar um objeto serializado no banco de dados? (talvez até mesmo um xml só com as propriedades que você alterou, se encontrar no xml, ele lê e atualiza a propriedade)

Uma boa sugestão para serializar para xml é o xtream.

davidbuzatto

Uai, o que cada JPanel representa? Um quarto? Um quarto pode estar ocupado ou não. Se ocupado, fica vermelho, se não ocupado, verde. É mais ou menos isso?
Então vc tem a tabela quarto no banco e ela tem uma coluna que chama “ocupado”. Você pode guardar um inteiro nela. O valor 0 quer dizer não ocupado, enquanto 1 quer dizer ocupado.
Cada quarto, pode tbm então ter uma referência ao componente que o representa. Vc usaria a propriedade “name” de cada JPanel e o valor que você atribuiu ao “name” você teria em uma coluna da tabela quarto, que você pode chamar de nomePainel.

Agora é fácil. Obtém todos os quartos, itera pelos quartos obtidos, quem estiver com o valor 0, vc pega o painel correspondente e pinta de verde. Quem estiver com o valor 1, pinta de vermelho. Você precisaria manter tbm uma lista com todos os paineis para você poder pegar o painel correspondente, lembrando de comprar o valor nomePainel com a propriedade name de cada JPanel.

Pronto.

fernandopaiva

Galera, resolvi o problema…segui a linha de raciocinio do “davidbuzatto” de guardar o nome do panel depois vir comparando para ver se esta ativo ou naum.

obrigado a todos.

Criado 5 de novembro de 2010
Ultima resposta 6 de nov. de 2010
Respostas 5
Participantes 4