|
Ein Window-Event wird immer dann generiert, wenn sich am Status eines Fensters eine Änderung ergeben hat, die für das Anwendungsprogramm von Interesse sein könnte. So erlangt das Programm beispielsweise Kenntnis davon, wenn ein Fenster erstellt oder zerstört, aktiviert oder deaktiviert oder wenn es symbolisiert oder wiederhergestellt wird.
Ein Empfänger für Window-Events muß das Interface WindowListener implementieren und bekommt Events des Typs WindowEvent übergeben. WindowEvent erweitert die Klasse ComponentEvent und stellt neben getID und getSource die Methode getWindow zur Verfügung, mit der das Fenster ermittelt werden kann, das die Nachricht ausgelöst hat.
public Window getWindow() |
java.awt.event.WindowEvent |
Die Registrierung der Empfängerklasse erfolgt mit der Methode addWindowListener, die in den Klassen Dialog und Frame zur Verfügung steht:
public void addWindowListener(WindowListener l) |
java.awt.Frame |
Tabelle 19.1 gibt eine Übersicht der Methoden von WindowListener und erklärt ihre Bedeutung:
Ereignismethode | Bedeutung |
windowActivated | Das Fenster wurde aktiviert. Diese Methode wird nach dem Erstellen des Fensters aufgerufen und wenn ein Fenster, das im Hintergrund stand, erneut in den Vordergrund gelangt. |
windowClosed | Das Fenster wurde geschlossen. |
windowClosing | Das Fenster soll geschlossen werden. Diese Methode wird aufgerufen, wenn der Anwender das Fenster über die Titelleiste, das Systemmenü oder die Tastenkombination [ALT]+[F4] schließen will. Es liegt in der Verantwortung der Anwendung, in diesem Fall Code zur Verfügung zu stellen, der das Fenster tatsächlich schließt. Standardmäßig reagiert das Programm nicht auf diese Benutzeraktionen. |
windowDeactivated | Das Fenster wurde deaktiviert, also in den Hintergrund gestellt. |
windowDeiconified | Das Fenster wurde wiederhergestellt, nachdem es zuvor auf Symbolgröße verkleinert wurde. |
windowIconified | Das Fenster wurde auf Symbolgröße verkleinert. |
windowOpened | Das Fenster wurde geöffnet. |
Tabelle 19.1: Methoden von WindowListener
Das folgende Programm systematisiert die Implementierung der Methode windowClosing, deren Verwendung bereits mehrfach gezeigt wurde. Dazu leitet es aus Frame eine neue Klasse CloseableFrame ab und registriert im Konstruktor einen anonymen WindowAdapter, der windowClosing überlagert und das Fenster durch Aufrufe von setVisible(false) und dispose() schließt. Alle Ableitungen von CloseableFrame besitzen nun die Fähigkeit, vom Anwender per Systemmenü, per Schließen-Button oder durch Drücken von [ALT]+[F4] beendet zu werden. Die Klasse Listing1901 demonstriert die Anwendung der neuen Klasse und erzeugt ein Fenster wnd aus CloseableFrame. Um das Programm nach dem Schließen des Fensters zu beenden, registriert es bei der Fensterklasse zusätzlich einen anonymen WindowAdapter, der bei Aufruf von windowClosing (also nach dem Schließen des Fensters) das Programm per Aufruf von System.exit beendet:
|
![]() |
|
![]() |
|
Go To Java 2, Addison Wesley, Version 1.0.2, © 1999 Guido Krüger, http://www.gkrueger.com |