Abrir apenas uma janela independente do numero de clicks no botão

2 respostas
A

Olá, Queria saber como faço para fazer com que uma janela que ja esteja aberta no meu programa (uso netbeans), quando eu clicar no botão para abri-la novamente ela ir para frente de todas as outras que ja estão abertas sem abrir uma nova.

Por EX: Eu tenho meu programa com dois botoes 1 e 2, onde abre uma janela quando clico, Então eu clico no botão 1 e depois no 2, Só que eu quero voltar para a janela 1, sem que ela abra novamente a janela 1, quero que a janela 1 quando eu clico no botão duas vezes permaneça apenas uma janela 1 aberta.

Se estiver meio confuso tento explicar melhor.

2 Respostas

Jonas_B_a_r_r_o_s
Acontece de abrir a janela muitas vezes, porque você sempre está criando muitos objetos da Classe/JFrame. Ai sempre que você clica no botao para abrir acontece isso ::>>

JFrame objeto  = new JFrame();

objeto.setVisible(true); não é isso?

Para resolver voocê só tem que criar uma(1) instancia dessa classe.
No JFrame (a janela que você quer que abra só uma vez) faça o seguinte
Declare isto:

//------------------------------------------------ SeuFrame ------------------------------------------------

private static final SeuFrame INSTANCIA = new SeuFrame();

public static SeuFrame getInstancia() {

return INSTANCIA;

}
//Declare o construtor como privado, para não permite novas instancias

private SeuFrame (){

// initComponents();

}

//------------------------------------------------ Fim ------------------------------------------------

E na Classe com o main. No metodo para abrir o JFrame acima::>>

//------------------------------------------------ Main ------------------------------------------------

SeuFrame objeto = SeuFrame.getInstancia();
objeto.setVisible(true);

//------------------------------------------------ Fim ------------------------------------------------

O seu JFrame vai sobrepor as outras jalenas assim que você clicar no botão. Não precisa usar mais nada adicional

A

Deu certo, Obrigado mesmo, Valew

Criado 8 de junho de 2016
Ultima resposta 9 de jun. de 2016
Respostas 2
Participantes 2