Dispose

3 respostas
speixe

Boas malta queria pedir vos ajuda, tipo quando temos uma janela pai aberta e temos outra aberta que é filho dessa para fechar o filho, basta a gente clicar na cruz e ele faz dispose e fecha a janela filho. Mas agora se tivermos varias janelas filho abertas dentro da janela pai e eu fechar uma janela filho, como faço para quando isso acontecer ele fechar as janelas filho todas atreves de uma so.

abraço

3 Respostas

maquiavelbona

Têm necessidade de criar tópico repetido?

Procure por Listeners, e o método que força o fechamento. Tens como colocar uma função para atuar como queres.

Até!

Luiz_Aguiar

O tópico anterior foi removido, por favor não crie tópicos repetidos.

Obrigado!

ksi
Fiz uma classe de exemplo para lhe ajudar:
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class Teste extends JFrame implements WindowListener{
	public Teste(){
		super("algo");
		setSize(200,200);
		setVisible(true);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		addWindowListener(this);
	}

	public void windowClosing(WindowEvent arg0) {
		JOptionPane.showMessageDialog(null,
				"A janela está fechando!",
				"Dúvida",
				JOptionPane.ERROR_MESSAGE);
	}
	
	public void windowOpened(WindowEvent arg0){
		JOptionPane.showMessageDialog(null,
				"A janela abriu!",
				"Dúvida",
				JOptionPane.ERROR_MESSAGE);
	}

	public void windowClosed(WindowEvent arg0) {}

	public void windowIconified(WindowEvent arg0) {}

	public void windowDeiconified(WindowEvent arg0) {}

	public void windowActivated(WindowEvent arg0) {}

	public void windowDeactivated(WindowEvent arg0) {}
	
	public static void main(String[] args) {
		new Teste();
	}
}

Entendeu?
Lembrando que você pode criar outra classe que implemente WindowListener e nela você definir os comandos necessários.
Exemplo:

import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame;

public class Tal implements WindowListener {

	JFrame []s;
	public Tal(JFrame [] s){
		this.s = s;
	}
	
	public void windowOpened(WindowEvent arg0) {}

	public void windowClosing(WindowEvent arg0) {
		for(int i=0;i<s.length;i++)
			s[i].dispose();
	}

	public void windowClosed(WindowEvent arg0) {}

	public void windowIconified(WindowEvent arg0) {}

	public void windowDeiconified(WindowEvent arg0) {}

	public void windowActivated(WindowEvent arg0) {}

	public void windowDeactivated(WindowEvent arg0) {}

}
Aí você faz no construtor da sua janela:
addWindowListener(new Tal(arrayDeJframes));
sendo que arrayDeJFrames são as janelas que você deseja que fechem após fechar essa principal.

Espero ter ajudado.
Abraço

Criado 15 de fevereiro de 2007
Ultima resposta 15 de fev. de 2007
Respostas 3
Participantes 4