Sou novo em java e estou desenvolvendo um aplicativo simples com cadastro de produtos, clientes etc. Tenho um frame principal e nele um menu que chama outras telas (internal frame). Até ai blz, clico ele abre, se eu clicar no menu para abir novamente ele nao abre, da forma que eu precisava. Quando eu fecho a janela, preencho os campos e depois fecho a janela, se eu a abro novamente ela vem com os dados anteriores.
Como eu faço para abrir a janela sem vir com os dados anteriores? Estou trabalhando com o padrao singleton.
Se você está usando Singleton, vai ter que limpar manualmente os campos mesmo.
Voce pode pegar todos os componentes da tela e tudo que for uma intancia de JTextBox, mandar limpar.
Quando abrir o InternalFrame, voce faz algo assim:
Só uma coisa: se você está setando sua janela como null para criar outra, certo?
Se for isso, não está mais no Padrão Singleton. Pelo que me lembro, o Singleton diz que você tem apenas uma instancia da classe e um ponto unico de acesso a ela.
Só uma coisa: se você está setando sua janela como null para criar outra, certo?
Se for isso, não está mais no Padrão Singleton. Pelo que me lembro, o Singleton diz que você tem apenas uma instancia da classe e um ponto unico de acesso a ela.[/quote]
O que eu entendi como singleton é que se vc estiver com uma classe instanciada (em outra classe), vc nao pode criar outra a nao ser que esta instancia deixe de existir. Eu estou setando ela como null dentro dela mesma quando eu a fecho, com o objetivo de “destrui-la”, ou seja, ela mesmo se cria e ela mesmo se destroe, a classe externa nao tem controle sobre ela para fazer isto, alguma coisa do tipo.
Eu tinha pensado em jogar no GC quando fechasse, mas seria um disperdicio.
Entendi!
Peguei um livro de Padrões aqui e diz o seguinte:
"Intenção
Garantir que uma classe tenha somente uma instância e fornecer um ponto Global de acesso para a mesma
" Padrões de Projeto - Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides
Fiquei com preguiça de escrever o resto, mas não fala nada sobre ela se destruir. Bom, se não restringe, deve estar certo o que vc fez!
Abraço!