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