Clicar em um botão e fechar um JFrame e Abrir outro!

código de onde eu chamo o JFrame que eu quero fechar:

package mainPack;

public class SystemMain {
    
    public static void main(String[] args) {

        MainJFrame form = new MainJFrame();
        form.show();
    }
}

código do botão e onde estou chamando o outro JFrame, este dentro da classe MainJFrame

private void entrarButMouseClicked(java.awt.event.MouseEvent evt) {
            HomeFrame form2 = new HomeFrame();
            form2.setVisible(true);
}

mas ai fica os dois abertos, como eu fecho aquele outro que ja ta aberto?

No frame que quer fechar usa o dispose();

mas onde eu vou colocar?

na classe onde eu instancio o frame que eu quero fechar, ou onde eu vou chamar o outro frame?

private void entrarButMouseClicked(java.awt.event.MouseEvent evt) { HomeFrame form2 = new HomeFrame(); form2.setVisible(true); dispose(); }

2 curtidas

funcionou perfeitamente!

muitíssimo obrigado!

disponha

Ok!

Aproveitando o tópico, lembrando que já procurei bastante, gostaria de uma ajuda:

E no caso de eu querer maximizar/restaurar um JFrame(Classe principal) de uma frame filho.
Obs: Não quero usar “new” pois se não vai abrir um novo JFrame, onde na vdd só quero torná-lo visível novamente quando fechar o Forme filho.
Obs: Estou usando um jButton.

Meu código:
//JFrame Pai
//jButton para abrir o Frame filho
private void btnCadastrarMouseClicked(java.awt.event.MouseEvent evt) {
//MÉTODO PARA CHAMAR A JANELA DE CADASTRO

    jdCadastro cadastro = new jdCadastro (this, true);
    cadastro.setLocationRelativeTo(null); // CENTRALIZA O JDIALOG.
   // this.dispose(); //FECHA O FORME ACOLH_JFRAME PARA EXIBIR CADASTRO
    this.setVisible(false); //oculta O FORME ACOLH_JFRAME PARA EXIBIR CADASTRO
    
    cadastro.setVisible(true);

}
#--

Aberta a janela Cadastro, tornei a mãe invisível, agora quando fechar Cadastro desejo restaurar/tornar visível a principal.

Usei este código:
private void jbCancelarMouseClicked(java.awt.event.MouseEvent evt) {
final Acolh_JFrame reexibir = new Acolh_JFrame();
this.dispose();
reexibir.setVisible(true);
}
Contudo, acontece de abrir uma nova (lógico, é new) janela mãe, limpando todos os campos e marcações.

Aguardo uma ajuda!
Grato! rsrsr