Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

panox

[Resolvido] Alterar o defaultCloseOperation de um JFrame

Recommended Posts

Olá a todos, estou fazendo alguns programas para me aperfeiçoar, e me surgiu uma duvida que gostaria de saber se é ou nao possível de ser feita.

 

Tenho um JFrame que é chamado por outro JFrame, mas gostaria de que, quando o usuário clicasse no "X" do Frame, ao invés de cair no defaultCloseOperation e sair do sistema, apenas voltar para aquele Frame, e apenas ser fechado no Frame principal.

 

Alguem teria uma boa dica para compartilhar ?

 

Obrigado e um forte abraço a todos.

 

Enrico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos, estou fazendo alguns programas para me aperfeiçoar, e me surgiu uma duvida que gostaria de saber se é ou nao possível de ser feita.

 

Tenho um JFrame que é chamado por outro JFrame, mas gostaria de que, quando o usuário clicasse no "X" do Frame, ao invés de cair no defaultCloseOperation e sair do sistema, apenas voltar para aquele Frame, e apenas ser fechado no Frame principal.

 

Alguem teria uma boa dica para compartilhar ?

 

Obrigado e um forte abraço a todos.

 

Enrico.

 

Como está seu código?

 

Pode tentar:

 

frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, funcionou...muito obrigado Marco.

 

Apenas uma duvida, quando eu chamo um novo frame, eu seto a visibilidade do anterior para false, minha pergunta é, como manter esse DISPOSE e fazer ele mudar o visible do frame anterior para true ?

 

 

Obrigado novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você terá que fzr é guardar a referencia do anterior neste novo frame, vou criar um exemplo usando 2 frames:

class FramePrincipal extends JFrame {
	private JButton mostrarOutoFrame;
	
	public FramePrincipal() {
		this.mostrarOutoFrame = new JButton("Abrir Janela");
		add(this.mostrarOutoFrame, BorderLayout.SOUTH);
		this.mostrarOutoFrame.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// aqui eu chamo o novo frame e passo p/ ele a referencia
				// desse frame
				FrameSecundario frameSecundario = new FrameSecundario(FramePrincipal.this);
				frameSecundario.setVisible(true);
				// escondo esse frame
				setVisible(false);
			}
		});
		
		setSize(200,200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
}

class FrameSecundario extends JFrame {
	private JFrame parent;
	
	public FrameSecundario(JFrame p) {
		this.parent = p;
		
		// aqui onde tudo funciona
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				parent.setVisible(true);
				dispose();
			}
		});
		
		setSize(200,200);
		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		
	}
}

Qlqer duvida é só postar..

Abraço http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.