Interface Gráfica - Java Swing

Boa tarde,
Estou com problemas em abrir uma só vez minhas JFrames e JInternalFrames.
Quando clico em um botão, ele abre corretamente a JFrame, porém, se eu clicar novamente no mesmo botão, ele abre uma nova tela, ao invés de chamar a mesma tela… Resolvo isso no Código ou Nas propriedades da Frame?
Alguém poderia me ajudar?
Desde já, obrigado!

É que você está criando uma nova instância ( new ConstrutorDaClasse() )
Se quer só uma instância, faz o new só uma vez e guarde a referência em uma variável de instância.

Olá staroski, estou errando aqui?

public void abreMenu() {
    ScreenPrincipal menu = new ScreenPrincipal();
    menu.setVisible(true);
    dispose();
}

Sim, como pode ver você sempre cria um novo objeto do tipo ScreenPrincipal.

Troque a variável local por uma variável de instância e só instancie o ScreenPrincipal uma vez.

2 curtidas