Fechar JFrane

10 respostas
J

Como faço para fechar a tela Cadastrar?

form Principal

import javax.swing.SwingUtilities;   
import java.awt.BorderLayout;   
import javax.swing.JPanel;   
import javax.swing.JFrame;   
import javax.swing.JButton;   
import java.awt.Rectangle;   
  
public class Principal extends JFrame {   
  
    private static final long serialVersionUID = 1L;   
  
    private JPanel jContentPane = null;   
  
    private JButton jButtonCadastrar = null;   
  
    private JButton getJButtonCadastrar() {   
        if (jButtonCadastrar == null) {   
            jButtonCadastrar = new JButton();   
            jButtonCadastrar.setBounds(new Rectangle(51, 43, 142, 33));   
            jButtonCadastrar.setText("Cadastrar");   
            jButtonCadastrar.addActionListener(new java.awt.event.ActionListener() {   
                public void actionPerformed(java.awt.event.ActionEvent e) {   
                    System.out.println("actionPerformed()");   
                    Cadastrar cad = new Cadastrar();   
                    cad.show();   
                }   
            });   
        }   
        return jButtonCadastrar;   
    }   
  
    public static void main(String[] args) {   
        // TODO Auto-generated method stub   
        SwingUtilities.invokeLater(new Runnable() {   
            public void run() {   
                Principal thisClass = new Principal();   
                thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
                thisClass.setVisible(true);   
            }   
        });   
    }   
  
    public Principal() {   
        super();   
        initialize();   
    }   
  
    private void initialize() {   
        this.setSize(300, 200);   
        this.setContentPane(getJContentPane());   
        this.setTitle("JFrame");   
    }   
  
    private JPanel getJContentPane() {   
        if (jContentPane == null) {   
            jContentPane = new JPanel();   
            jContentPane.setLayout(null);   
            jContentPane.add(getJButtonCadastrar(), null);   
        }   
        return jContentPane;   
    }   
  
}
Form Secundario 


view plaincopy to clipboardprint?
import java.awt.BorderLayout;   
import javax.swing.JPanel;   
import javax.swing.JFrame;   
import javax.swing.JButton;   
import java.awt.Rectangle;   
  
public class Cadastrar extends JFrame {   
  
    private static final long serialVersionUID = 1L;   
  
    private JPanel jContentPane = null;   
  
    private JButton jButtonCadastrar = null;   
  
    public Cadastrar() {   
        super();   
        initialize();   
    }   
  
    private void initialize() {   
        this.setSize(300, 200);   
        this.setContentPane(getJContentPane());   
        this.setTitle("JFrame");   
    }   
  
    private JPanel getJContentPane() {   
        if (jContentPane == null) {   
            jContentPane = new JPanel();   
            jContentPane.setLayout(null);   
            jContentPane.add(getJButtonCadastrar(), null);   
        }   
        return jContentPane;   
    }   
  
    private JButton getJButtonCadastrar() {   
        if (jButtonCadastrar == null) {   
            jButtonCadastrar = new JButton();   
            jButtonCadastrar.setBounds(new Rectangle(33, 45, 176, 21));   
            jButtonCadastrar.setText("Fechar");   
            jButtonCadastrar.addActionListener(new java.awt.event.ActionListener() {   
                public void actionPerformed(java.awt.event.ActionEvent e) {   
                    System.out.println("actionPerformed()");   
                    Cadastrar cad = new Cadastrar();   
                    cad.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);   
                }   
            });   
        }   
        return jButtonCadastrar;   
    }   
  
}

10 Respostas

Zakim

this.dispose();

J

não funciona

Zakim

cad.dispose() então…

vc está criando um objeto cadastrar dentro da classe Cadastrar!

está mto confuso, mas o dispose(), tem que funcionar por bem ou por mal.

Linkel

Cara, já tentou…

Tem que funcionar…

I

Essa dica me ajudou!!!

Fiz tudo certinho e nao estava funcionando, depois que fiz a sugestão do LINKEL, de por FALSE, aqui que fudeu mesmo, rs… os Frames nem abriram mais, (acho que seria o esperado mesmo) porem, quando voltei para TRUE, o botão fechar, funcionou corretamente… como eu uso o NetBeans, deveria está na memória… algum Buffer.

Valeu

JamesBond
:wink:

:wink:

Linkel

Itam:
Essa dica me ajudou!!!
Fiz tudo certinho e nao estava funcionando, depois que fiz a sugestão do LINKEL, de por FALSE, aqui que fudeu mesmo, rs… os Frames nem abriram mais, (acho que seria o esperado mesmo) porem, quando voltei para TRUE, o botão fechar, funcionou corretamente… como eu uso o NetBeans, deveria está na memória… algum Buffer.
Valeu

Ajudei ou atrapalhei? rsrsrsrsrssrs?
Cara, tenta fazer… this.hide();
Depois do método setVisible()…
Não tenho certeza mas acho que isso tira da memoria…
T+

ViniGodoy

Me diz uma coisa… pq vc abriu dois tópicos para o mesmo assunto!!!
http://www.guj.com.br/posts/list/0/83915.java

Não duplique tópicos!

ViniGodoy

No construtor da classe cadastrar você pode colocar:

this.setDefaultCloseOperator(DISPOSE_ON_CLOSE);

Depois, você pode adicionar um botão assim:

private JButton getJButtonCadastrar() { if (jButtonFechar == null) { jButtonFechar= new JButton(); jButtonFechar.setBounds(new Rectangle(33, 66, 176, 21)); jButtonFechar.setText("Fechar"); jButtonFechar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { Cadastrar.this.dispose(); } }); } return jButtonFechar; }

Esse button será capaz de fechar sua janela.

I

Cara vc me ajudou…

Ja conseguir fechar o JFrame com o this.dispose();

Putz, sobre a duplicação do topico, eu nao fiz isso, eu só respondi um topico mais antigo.

Valew galera!

Criado 5 de março de 2008
Ultima resposta 7 de mar. de 2008
Respostas 10
Participantes 6