From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100185.html | 253 +++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100185.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100185.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100185.html b/Master/Reference Architectures and Patterns/hjp5/html/k100185.html new file mode 100644 index 0000000..ea37ec0 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100185.html @@ -0,0 +1,253 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 29 - Low-Level-Events +
+
+ + + + +

29.1 Window-Events

+
+ +
+ +

+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 muss 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 29.1 gibt +eine Übersicht der Methoden von WindowListener +und erklärt ihre Bedeutung: + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
EreignismethodeBedeutung
windowActivatedDas 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.
windowClosedDas Fenster wurde geschlossen.
windowClosingDas 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.
windowDeactivatedDas Fenster wurde deaktiviert, also in den +Hintergrund gestellt.
windowDeiconifiedDas Fenster wurde wiederhergestellt, nachdem +es zuvor auf Symbolgröße verkleinert worden war.
windowIconifiedDas Fenster wurde auf Symbolgröße +verkleinert.
windowOpenedDas Fenster wurde geöffnet.
+

+Tabelle 29.1: Methoden von WindowListener

+ +

+Das folgende Programm demonstriert die Anwendung der Methode windowClosing, +deren Verwendung bereits in Abschnitt 23.2.4 +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 (unter Windows) durch Drücken +von [ALT]+[F4] +beendet zu werden. + +

+Die Klasse Listing2901 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 windowClosed +(also nach dem Schließen des Fensters) das Programm per Aufruf +von System.exit +beendet: + + +

+ + + + + +
+ +
+001 /* Listing2901.java */
+002 
+003 import java.awt.*;
+004 import java.awt.event.*;
+005 
+006 class CloseableFrame
+007 extends Frame
+008 {
+009   public CloseableFrame()
+010   {
+011     this("");
+012   }
+013 
+014   public CloseableFrame(String title)
+015   {
+016     super(title);
+017     addWindowListener(
+018       new WindowAdapter() {
+019         public void windowClosing(WindowEvent event)
+020         {
+021           setVisible(false);
+022           dispose();
+023         }
+024       }
+025     );
+026   }
+027 }
+028 
+029 public class Listing2901
+030 {
+031   public static void main(String[] args)
+032   {
+033     CloseableFrame wnd = new CloseableFrame("CloseableFrame");
+034     wnd.setBackground(Color.lightGray);
+035     wnd.setSize(300,200);
+036     wnd.setLocation(200,100);
+037     wnd.setVisible(true);
+038     wnd.addWindowListener(
+039       new WindowAdapter() {
+040         public void windowClosed(WindowEvent event)
+041         {
+042           System.out.println("terminating program...");
+043           System.exit(0);
+044         }
+045       }
+046     );
+047   }
+048 }
+
+
+Listing2901.java
+ +Listing 29.1: Die Klasse CloseableFrame

+
+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3