Bom galera,
Eu gostaria que vocês me dessem um exemplo de como
usar a Interface WindowListener ou então mandassem o
link do exemplo. Por Favor tentem mandar o código do
exemplo comentado e o mais simples possível para que
eu possa entender melhor.
ele funciona pra monitorar uma janela.... segue ai um exemplo pratico...
/* * AppTeste.java * * Created on 21/03/2009, 18:13:23 */packageajudaforum;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjavax.swing.JOptionPane;/** * * @author Tomaz */publicclassAppTesteextendsjavax.swing.JFrame{/** Creates new form AppTeste */publicAppTeste(){initComponents();}/** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */@SuppressWarnings("unchecked")// <editor-fold defaultstate="collapsed" desc="Generated Code">privatevoidinitComponents(){setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0,400,Short.MAX_VALUE));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0,300,Short.MAX_VALUE));pack();}// </editor-fold>/** * @param args the command line arguments */publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){javax.swing.JFrameframe=newAppTeste();//Aqui estou adcionando um espião a janela AppTeste() a minha classe BBWframe.addWindowListener(newBigBrotherWindow());//quando agente setVisible, quem tiver de listner, ou seja//escutando, sera chamado através do método windowOpened(WindowEvent e)frame.setVisible(true);}});}/** * WindowsAdapter, é uma classe que implementa WindowsListner, onde todos os * método são em branco, é util quando só se quer monitorar algumas coisas * da Janela, no nosso caso, estamos moniturando a abertura, o fechamento, * e quando a janela é minimizada... */privatestaticclassBigBrotherWindowextendsWindowAdapter{privatebooleanminimizado=false;publicvoidwindowOpened(WindowEvente){System.out.println("A janela abriu!!! estamos espiado!"+e.getSource().getClass().getSimpleName());System.out.println("O estado antigo era :"+e.getOldState());System.out.println("O novo estado é :"+e.getNewState());System.out.println("Continue espiando!!! BIG BROTHER WIDOWS! vc não perde por espiar");}publicvoidwindowClosing(WindowEvente){if(!minimizado){JOptionPane.showMessageDialog(e.getWindow(),"Antes de fechar, vc precisa minizar a janela 1 vez");//aqui to gerando um erro, pra não deichar a janela fecharthrownewRuntimeException("Antes de fechar, vc precisa minizar a janela 1 vez");}elseSystem.out.println("agora fechou!");}publicvoidwindowIconified(WindowEvente){minimizado=true;JOptionPane.showMessageDialog(e.getWindow(),"Minimzando a janela ?? estamos de olho!");}}// Variables declaration - do not modify// End of variables declaration}
sempre que ocorre um dos eventos descritos na escuta, ele chama os Listners através do método pre definido... informando assim que o evento esta acontecendo...
Lavieri
alguma instruções… copie o código pra sua IDE… rode ele…
leia o console quando a janela abrir… em seguida… clique no botão de FECHAR da janela… veja a msg que aparece, depois minimize, veja o que acontece… depois tente fechar novamente, veja que agora funciona… e veja as msgs do console… abraços!..
tiver duvida avisa
Matchola
Ótimo exemplo Lavieri,
Muito Obrigado vai ser de grande ajuda.