Interface Gráfica - Java Swing

3 respostas
java
G

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!

3 Respostas

staroski

É 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.

G

Olá staroski, estou errando aqui?

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

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.

Criado 27 de dezembro de 2017
Ultima resposta 28 de dez. de 2017
Respostas 3
Participantes 2