Duvidas sobre setVisible JInternalFrame

Eu tenho uma classe principal

[code]pubic class Main extends JFrame {
private NovoUsuario novo;
private JDesktopPane desktop;

public Main() {


desktop = new JDesktopPane();
novo = new NovoUsuario();
desktop.add( novo );

}
}
[/code]

mas até ae tudo bem…
funciona blz… o problema é que NovoUsuario é um JInternalFrame

[code]public class NovoUsuario extends JInternalFrame implements ActionListener {


public NovoUsuario() {

setVisible( true );

}

[/code]

agora meu problema eh quando eu reescrevo o metado setVisible da classe NovoUsuario:

public void setVisible( boolean aFlag ) { if( aFlag ) show(); else hide(); }

:arrow: quando eu dou setVisible( true ) continua funcionando normalmente, mas quando uso o metado com o argumento false parece que o JDesktopPane nao atualiza e entao o JInternalFrame fica desenhado na tela ainda… ae so quando eu minimizo e maximizo que o JDesktopPane atualiza…

:arrow: o que devo fazer ???

Tenta usar o dispose() ao inves de setVisible(false)

setVisible(false);
dispose();

Usa com o dispose logo abaixo.

mas dispose() para mim nao funciona…
porque quando eu fecho com dispose() quando tento da setVisible( true ) nao funciona mais…
parece que dispose perde a referencia para o JInternalFrame… sei la…
e eu nao queria ficar criando toda hora um JInternalFrame quando o cara click no botao NovoUsuario… queria apenas usar setVisible … e isso funciona… o problema é que precisava sobrescrever o metado para acrescentar algumas coisas… e eh justamente quando sobrescrevo o metado que o setVisible( false ) nao atualiza o JDeskTopPane.

O metodo dispose() destroi o componente, jogando o coitado pro limbo :slight_smile:

E se vc chamar um validate() no mdi???

Como assim??? O que eh mdi??? foi mal a ignorancia

:arrow: So acrescentando outra coisa, não é problema para mim sempre que a pessoa clicar por exemplo em Novo Usuario… eu criar um novo objecto NovoUsuario, entao eu usaria dispose() e dava tudo certo.
O problema é que criando um novo objeto quando o cara click num botao ou um menu, ele pode fazer isso inumeras vezes… e para mim por exemplo o Login no seria legal o cara abrir 10 janelas de Login…
Tem como eu limitar em apenas 1 o numero de um certo JInternalFrame??

É o seu JDesktopPane

tentei o validade()
mas nao resolveu o problema :?

:idea: Achei legal a ideia de criar um novo objeto JInternalFrame

:arrow: Mas existe como limitar o numero de instancias??? Ou existe alguma tecnica que fico sabendo que uma tela do JInternalFrame ja esta aberta, ae entao nao abro outro.
obrigado.