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.
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();
}
}[/code]
Entendeu?
Lembrando que você pode criar outra classe que implemente WindowListener e nela você definir os comandos necessários.
Exemplo:
[code]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.