Back to TILs

Dispose window

Referências

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