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

6 respostas
redtxai

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?

6 Respostas

D

No frame que quer fechar usa o dispose();

redtxai

mas onde eu vou colocar?

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

D

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

redtxai

funcionou perfeitamente!

muitíssimo obrigado!

D

disponha

J

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

Criado 7 de dezembro de 2011
Ultima resposta 22 de abr. de 2014
Respostas 6
Participantes 3