Versions du programme affichant une Frame V 0.0 : Fenêtre infermable. V 1.0 : Le listener est implanté dans une classe publique top-level. V 1.1 : Le listener est implanté au moyen d’une classe membre. V 2.1 : Un adapter implante toutes les méthodes du WindowListener avec du code vide ; le listener est implanté par une classe dérivée de l’adapter en redéfinissant les méthodes qui sont employées effectivement. V 3.1 : Le listener est implanté par une classe dérivée de l’adapter fourni par la bibliothèque en redéfinissant les méthodes qui sont employées effectivement. De plus : La version V3.1-Trace illustre comment on peut inclure au cours de la mise au point une trace des événements qui se produisent lors de l’exécution d’une application interactive. /** * Fenêtre infermable * * @author Peter DAEHNE - HEG-Genève * @version Version 0.02 */ import java.awt.*; public class Fenetre0 { private static Frame frm; /* Création de la fenêtre et affichage de celle-ci */ private static void creerFenetre () { frm = new Frame("Fenêtre (infermable) - V0.0"); /* Initialement invisible */ frm.setSize(500, 400); /* Fixe la dimension de la Frame */ frm.setVisible(true); /* Rend la Frame visible */ } // creerFenetre private static void traitements () {} public static void main (String[] args) { creerFenetre(); traitements(); } // main } // Fenetre0 /** * Fenêtre * - Le listener chargé de gérer l'événement de fermeture est * une classe publique (ou package) * * @author Peter DAEHNE - HEG-Genève * @version Version 1.02 */ import java.awt.*; public class Fenetre10 { private static Frame frm; /* Création de la fenêtre et affichage de celle-ci */ private static void creerFenetre () { frm = new Frame("Fenêtre - V1.0"); /* Initialement invisible */ frm.addWindowListener(new MyWindowListener()); /* Inscription du listener */ frm.setSize(500, 400); /* Fixe la dimension de la Frame */ frm.setVisible(true); /* Rend la Frame visible */ } // creerFenetre private static void traitements () {} public static void main (String[] args) { creerFenetre(); traitements(); } // main } // Fenetre10 /** * Listener chargé de gérer l'événement de fermeture d'une fenêtre * - Lorsque la fenêtre est fermée, l'application se termine. * * @author Peter DAEHNE - HEG-Genève * @version Version 1.01 */ import java.awt.*; import java.awt.event.*; public class MyWindowListener implements WindowListener { public public public public public public public void void void void void void void windowActivated (WindowEvent e) {} windowClosed (WindowEvent e) {System.exit(0);} windowClosing (WindowEvent e) {((Frame)e.getSource()).dispose();} windowDeactivated (WindowEvent e) {} windowDeiconified (WindowEvent e) {} windowIconified (WindowEvent e) {} windowOpened (WindowEvent e) {} } // MyWindowListener /** * Fenêtre * - Le listener chargé de gérer l'événement de fermeture est * une classe membre * * @author Peter DAEHNE - HEG-Genève * @version Version 1.12 */ import java.awt.*; import java.awt.event.*; /** * Adaptateur de WindowListener * - Permet de déclarer des extensions utilisables comme listeners. Les * extensions devront seulement redéfinir les méthodes qui les intéressent. * * @author Peter DAEHNE - HEG-Genève * @version Version 2.0 */ import java.awt.event.*; public class MyWindowAdapter implements WindowListener { public class Fenetre11 { /* Listener chargé de gérer l'événement de fermeture d'une fenêtre - Lorsque la fenêtre est fermée, l'application se termine. */ private static class MyWindowListener implements WindowListener { public void windowActivated (WindowEvent e) {} public void windowClosed (WindowEvent e) {System.exit(0);} public void windowClosing (WindowEvent e) {((Frame)e.getSource()).dispose();} public void windowDeactivated (WindowEvent e) {} public void windowDeiconified (WindowEvent e) {} public void windowIconified (WindowEvent e) {} public void windowOpened (WindowEvent e) {} } // MyWindowListener private static Frame frm; /* Création de la fenêtre et affichage de celle-ci */ private static void creerFenetre () { frm = new Frame("Fenêtre - V1.1"); /* Initialement invisible */ frm.addWindowListener(new MyWindowListener()); /* Inscription du listener */ frm.setSize(500, 400); /* Fixe la dimension de la Frame */ frm.setVisible(true); /* Rend la Frame visible */ } // creerFenetre public public public public public public public void void void void void void void windowActivated (WindowEvent e) {} windowClosed (WindowEvent e) {} windowClosing (WindowEvent e) {} windowDeactivated (WindowEvent e) {} windowDeiconified (WindowEvent e) {} windowIconified (WindowEvent e) {} windowOpened (WindowEvent e) {} } // MyWindowAdapter /** * Fenêtre * - Le listener chargé de gérer l'événement de fermeture est * une classe membre dérivée de l'adapter * * @author Peter DAEHNE - HEG-Genève * @version Version 2.12 */ import java.awt.*; import java.awt.event.*; private static void traitements () {} public class Fenetre21 { public static void main (String[] args) { creerFenetre(); traitements(); } // main } // Fenetre11 /* Listener chargé de gérer l'événement de fermeture d'une fenêtre - Lorsque la fenêtre est fermée, l'application se termine. */ private static class MyWindowListener extends MyWindowAdapter { public void windowClosed (WindowEvent e) {System.exit(0);} public void windowClosing (WindowEvent e) {((Frame)e.getSource()).dispose();} } // MyWindowListener private static Frame frm; /* Création de la fenêtre et affichage de celle-ci */ private static void creerFenetre () { frm = new Frame("Fenêtre - V2.1"); /* Initialement invisible */ frm.addWindowListener(new MyWindowListener()); /* Inscription du listener */ frm.setSize(500, 400); /* Fixe la dimension de la Frame */ frm.setVisible(true); /* Rend la Frame visible */ } // creerFenetre private static void traitements () {} public static void main (String[] args) { creerFenetre(); traitements(); } // main } // Fenetre21 /** * Fenêtre * - Le listener chargé de gérer l'événement de fermeture est * une classe membre dérivée de l'adapter de la bibliothèque. * * @author Peter DAEHNE - HEG-Genève * @version Version 3.12 */ import java.awt.*; import java.awt.event.*; /** * Fenêtre * - Le listener chargé de gérer l'événement de fermeture est * une classe membre dérivée de l'adapter de la bibliothèque. * - Les différents événements sont tracés. * * @author Peter DAEHNE - HEG-Genève * @version Version 3.12 (Trace) */ import java.awt.*; import java.awt.event.*; public class Fenetre31 { public class Fenetre31Trace { /* Listener chargé de gérer l'événement de fermeture d'une fenêtre - Lorsque la fenêtre est fermée, l'application se termine. */ private static class MyWindowListener extends WindowAdapter { public void windowClosed (WindowEvent e) {System.exit(0);} public void windowClosing (WindowEvent e) {((Frame)e.getSource()).dispose();} } // MyWindowListener private static Frame frm; /* Création de la fenêtre et affichage de celle-ci */ private static void creerFenetre () { frm = new Frame("Fenêtre - V3.1"); /* Initialement invisible */ frm.addWindowListener(new MyWindowListener()); /* Inscription du listener */ frm.setSize(500, 400); /* Fixe la dimension de la Frame */ frm.setVisible(true); /* Rend la Frame visible */ } // creerFenetre /* Listener chargé du traçage des événements. */ private static class TraceListener implements WindowListener { public void windowActivated (WindowEvent e) {System.out.println("windowActivated()");} public void windowClosed (WindowEvent e) {System.out.println("windowClosed()");} public void windowClosing (WindowEvent e) {System.out.println("windowClosing()");} public void windowDeactivated (WindowEvent e) {System.out.println("windowDeactivated()");} public void windowDeiconified (WindowEvent e) {System.out.println("windowDeiconified()");} public void windowIconified (WindowEvent e) {System.out.println("windowIconified()");} public void windowOpened (WindowEvent e) {System.out.println("windowOpened()");} } // TraceListener /* Listener chargé de gérer l'événement de fermeture d'une fenêtre - Lorsque la fenêtre est fermée, l'application se termine. */ private static class MyWindowListener extends WindowAdapter { public void windowClosed (WindowEvent e) {System.exit(0);} public void windowClosing (WindowEvent e) {((Frame)e.getSource()).dispose();} } // MyWindowListener private static Frame frm; private static void traitements () {} public static void main (String[] args) { creerFenetre(); traitements(); } // main } // Fenetre31 /* Création de la fenêtre et affichage de celle-ci */ private static void creerFenetre () { frm = new Frame("Fenêtre - V3.1 - Trace"); /* Initialement invisible */ frm.addWindowListener(new TraceListener()); /* Inscription du listener de traçage */ frm.addWindowListener(new MyWindowListener()); /* Inscription du listener de gestion de la fenêtre */ frm.setSize(500, 400); /* Fixe la dimension de la Frame */ frm.setVisible(true); /* Rend la Frame visible */ } // creerFenetre private static void traitements () {} public static void main (String[] args) { creerFenetre(); traitements(); } // main } // Fenetre31Trace