Fechar janela

11 respostas
J

Olá amigos estou querendo fechar uma janela mais naum estou conseguindo.

tenho uma janela principal e janela cadastro

o unico código que fucniona é o System.exit(0);

já coloquei

dispose();

lista = new FormLista();

lista.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

alguem sabe o que posso fazer?

11 Respostas

V

O código para fazer isso é o lista.dispose().

Você também pode definir o defaultCloseOperation para DISPOSE_ON_CLOSE.

J

ja tinha feito isso tb

lista.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

mais tb naum vai!

B

Ola,

Vc já tentou o setVisible(false);

Agora uma pergunta, onde vc tá colocando estes metodos? dentro de um evento né?!

R

tenho uma aplicação com um JFrame principal e vários outros que são chamados apartir deste. Nos secundários eu seto setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); e quando o usuario clica no botao ‘Fechar’ de um frame secundário eu uso o this.dispose().

Agora, vc precisa fechar os JFrame's secundários ou o principal? Se for o principal vc vai ter que usar mesmo o System.exit(0), pois entende-se que o usuario quer matar a aplicação.

Espero ter ajudado.

M

dispose();

F

Quando quero fechar um frame apenas, eu faço:

Frame meuFrame = new Frame();
meuFrame.dispose();

Isso fecha o frame atual e finaliza o processo dele

O comando setVisible apenas oculta o frame. Repaer que se você fechar vários frames com o setVisible(), quando você for verificar o Gerenciador do Sistema, estará carregado de processos “java”.

A
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

?

J

estou colocando o código abaixo!

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

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;
	}

}

já fiz de tudo e nada fecha!

J

FabricioPJ:
Quando quero fechar um frame apenas, eu faço:

Frame meuFrame = new Frame();
meuFrame.dispose();

Isso fecha o frame atual e finaliza o processo dele

V

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

Não duplique tópicos

V

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.

Criado 4 de março de 2008
Ultima resposta 7 de mar. de 2008
Respostas 11
Participantes 8