Limpar internal frame

Fala galera.

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.

Obrigado.

Olá!

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:


for(Component comp : internal.getComponents())
{
        if(comp instanceof JTextField)
        {
               ((JTextField)comp).setText("");
        }
}

Vlw Marck,

Este seu exemplo vai servir para um outro negocio que estou fazendo neste projeto.

Para resolver este problema eu fiz o seguinte:

Como no singleton precisamos instanciar a classe dentro dela mesmo, quando eu fecho a janela, eu seto o objeto como null, entao ele “limpa” a tela.

Vlw galera. Vou deixar meu post aberto por hoje para que voces possam fazer algum comentario ou correçao de alguma coisa errada que falei.

Obrigado.

:lol: Blza!

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=Marck] :lol: Blza!

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.

Vlw o toque.

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! :smiley:
Abraço!