Date: Fri, 10 Nov 2023 15:11:48 +0100
Subject: add new repo
---
.../hjp5/html/k100249.html | 590 +++++++++++++++++++++
1 file changed, 590 insertions(+)
create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100249.html
(limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100249.html')
diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100249.html b/Master/Reference Architectures and Patterns/hjp5/html/k100249.html
new file mode 100644
index 0000000..01cc8ae
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/hjp5/html/k100249.html
@@ -0,0 +1,590 @@
+
+
+
+Handbuch der Java-Programmierung, 5. Auflage
+
+
+
+
+
+
+
+
+
+
+
+
+39.1 Die Architektur eines Applets
+
+
+
+
+
+
+
+39.1.1 Grundlagen
+
+
+Für viele Leser, die Java lernen wollen, steht die Entwicklung
+von Applets im Vordergrund und ist der Hauptgrund für die Beschäftigung
+mit der Sprache. In letzter Zeit ist allerdings ein Trend zu beobachten,
+bei dem Java zunehmend auch als Sprache für die Anwendungsentwicklung
+an Bedeutung gewinnt. Daß man mit Java auch Web-Pages verschönern
+kann, ist dabei ein angenehmer Nebeneffekt.
+
+
+Tatsächlich unterscheiden sich Applets und Applikationen gar
+nicht so stark voneinander, wie man vermuten könnte. Bis auf
+wenige Ausnahmen werden sie mit denselben Werkzeugen und Techniken
+konstruiert. Vereinfacht kann man sagen, dass Java-Applikationen eigenständige
+Programme sind, die zur Ausführung den Stand-Alone-Java-Interpreter
+benötigen, während Java-Applets aus HTML-Seiten heraus aufgerufen
+werden und zur Ausführung einen Web-Browser benötigen.
+
+
+Die wichtigsten Unterschiede kann man in einer kurzen Liste zusammenfassen:
+
+- Das Hauptprogramm eines Applets wird immer aus der Klasse Applet
+abgeleitet. Bei einer Applikation ist es prinzipiell gleichgültig,
+woraus die Hauptklasse abgeleitet wird.
+
- Eine Applikation wird gestartet, indem vom Java-Interpreter die
+Klassenmethode main
+aufgerufen wird. Das Starten eines Applets wird dadurch erreicht,
+dass der Web-Browser die Applet-Klasse instanziert und die Methoden
+init
+und start
+aufruft.
+
- Aus Sicherheitsgründen darf ein Applet in der Regel weder
+auf Dateien des lokalen Rechners zugreifen noch externe Programme
+auf diesem starten. Eine Ausnahme bilden signierte Applets.
+Für eine Applikation gelten diese Beschränkungen nicht.
+
- Ein Applet arbeitet immer grafik- und ereignisorientiert. Bei
+einer Applikation dagegen ist es möglich, auf die Verwendung
+des AWT zu verzichten und alle Ein-/Ausgaben textorientiert zu erledigen.
+
- Applets bieten einige zusätzliche Möglichkeiten im Bereich
+des Benutzerschnittstellen-Designs, die so bei Applikationen nicht
+ohne weiteres zu finden sind. Die Ausgabe von Sound beispielsweise
+ist standardmäßig auf Applets beschränkt.
+
+
+
+Dieses Kapitel erklärt die Grundlagen der Applet-Programmierung
+und erläutert die Einbindung von Applets in HTML-Dokumente. Es
+baut dabei auf vielen der in den Kapiteln 23
+bis 34 des Buches
+vermittelten AWT-Features auf, ohne deren Kenntnis die Applet-Programmierung
+kaum möglich wäre.
+
+
+
+
+
39.1.2 Die Klasse java.applet.Applet
+
+
+Wie schon erwähnt, wird das Hauptprogramm eines Applets aus der
+Klasse Applet
+des Pakets java.applet
+abgeleitet. Applet
+ist nun aber keine der abstrakten Basisklassen der Java-Klassenbibliothek,
+wie man es vielleicht erwarten würde, sondern eine konkrete Grafikklasse
+am Ende der Klassenhierarchie. Applet
+ist aus der Klasse Panel
+abgeleitet, diese aus Container
+und Container
+aus Component.
+Abbildung 39.1 stellt die
+Ableitungshierarchie schematisch dar:
+
+
+
+
+
+
+Abbildung 39.1: Ableitungsbaum der Applet-Klasse
+
+
+Ein Applet ist also ein rechteckiges Bildschirmelement, das eine Größe
+und Position hat, Ereignisse empfangen kann und in der Lage ist, grafische
+Ausgaben vorzunehmen. Tatsächlich kommt dies dem Anspruch eines
+Applets, ein eigenständiges Programm zu sein, das innerhalb eines
+fensterartigen Ausschnitts in einem grafikfähigen Web-Browser
+läuft, sehr entgegen. Durch die Vererbungshierarchie erbt ein
+Applet bereits von seinen Vaterklassen einen großen Teil der
+Fähigkeiten, die es zur Ausführung benötigt. Die über
+die Fähigkeiten von Container,
+Component
+und Panel
+hinaus erforderliche Funktionalität, die benötigt wird,
+um ein Objekt der Klasse Applet
+als Hauptmodul eines eigenständigen Programms laufen zu lassen,
+wird von der Klasse Applet
+selbst zur Verfügung gestellt.
+
+
+
+
+
39.1.3 Initialisierung und Endebehandlung
+
+
+Die Kommunikation zwischen einem Applet und seinem Browser läuft
+auf verschiedenen Ebenen ab. Nach dem Laden wird das Applet zunächst
+instanziert und dann initialisiert. Anschließend
+wird es gestartet, erhält GUI-Events und wird irgendwann wieder
+gestoppt. Schließlich wird das Applet vom Browser nicht mehr
+benötigt und zerstört.
+
+
+Zu jedem dieser Schritte gibt es eine korrespondierende Methode, die
+vor dem entsprechenden Statuswechsel aufgerufen wird. Die aus Applet
+abgeleitete Klasse ist dafür verantwortlich, diese Methoden zu
+überlagern und mit der erforderlichen Funktionalität auszustatten.
+
+
+
+
+
Instanzierung des Applets
+
+
+Bevor ein Applet aktiv werden kann, muss der Browser zunächst
+ein Objekt der abgeleiteten Applet-Klasse
+instanzieren. Hierzu ruft er den parameterlosen Default-Konstruktor
+der Klasse auf:
+
+
+
+
+Üblicherweise wird dieser in der abgeleiteten Klasse nicht überlagert,
+sondern von Applet
+geerbt. Notwendige Initialisierungen von Membervariablen werden später
+erledigt.
+
+
+
+
+
Initialisierung des Applets
+
+
+Nach der Instanzierung ruft der Browser die Methode init
+auf, um dem Applet die Möglichkeit zu geben, Initialisierungen
+vorzunehmen:
+
+
+
+
+
+
+
+
+Starten des Applets
+
+
+Nachdem die Initialisierung abgeschlossen ist, wird die Methode start
+aufgerufen, um die Ausführung des Applets zu starten:
+
+
+
+
+
+
+
+
+Stoppen des Applets
+
+
+Durch Aufrufen der Methode stop
+zeigt der Browser dem Applet an, dass es gestoppt werden soll:
+
+
+
+
+Wie erwähnt, geschieht dies immer dann, wenn eine andere Seite
+geladen wird. Während der Lebensdauer eines Applets können
+die Methoden start
+und stop
+also mehrfach aufgerufen werden. Keinesfalls darf ein Applet also
+innerhalb von stop
+irgendwelche endgültigen Aufräumarbeiten durchführen
+und Ressourcen entfernen, die es bei einem nachträglichen Neustart
+wieder benötigen würde.
+
+
+
+
+
Zerstören des Applets
+
+
+Wenn ein Applet ganz bestimmt nicht mehr gebraucht wird (z.B. weil
+der Browser beendet wird), ruft der Browser die Methode destroy
+auf:
+
+
+
+
+Diese kann überlagert werden, um Aufräumarbeiten zu erledigen,
+die erforderlich sind, wenn das Applet nicht mehr verwendet wird.
+Eine typische Anwendung von destroy
+besteht beispielsweise darin, einen Thread zu zerstören, der
+bei der Initialisierung eines Applets angelegt wurde.
+
+
+
+
+
39.1.4 Weitere Methoden der Klasse Applet
+
+
+
+
+Methoden zum Nachrichtentransfer
+
+
+Neben diesen vier speziellen Methoden kann ein Applet alle Nachrichten
+erhalten, die an ein Component-Objekt
+versendet werden. Hierzu zählen Mouse-, MouseMotion-, Key-, Focus-
+und Component-Events ebenso wie die Aufforderung an das Applet, seine
+Client-Area neu zu zeichnen. Bezüglich Reaktion auf die Events
+und die Registrierung und Programmierung geeigneter Listener-Klassen
+verhält sich ein Applet genauso wie jedes andere Fenster. In
+Kapitel 28 und Kapitel 29
+wurden die möglichen Ereignisse und die Reaktion des Programms
+darauf vorgestellt.
+
+
+
+
+
showStatus
+
+
+Mit der Methode showStatus
+kann das Applet einen Text in die Statuszeile des HTML-Browsers
+schreiben, der das Applet ausführt:
+
+
+
+
+Das folgende Beispiel zeigt ein sehr einfaches Applet, das den Text
+»Hello, world« auf dem Bildschirm ausgibt und in die Statuszeile
+des Browsers schreibt:
+
+
+
+
+
+
+
+
+001 /* Listing3901.java */
+002
+003 import java.awt.*;
+004 import java.applet.*;
+005
+006 public class Listing3901
+007 extends Applet
+008 {
+009 public void paint(Graphics g)
+010 {
+011 showStatus("Hello, world");
+012 g.drawString("Hello, world",10,50);
+013 }
+014 }
+
+ |
+
+Listing3901.java |
+
+
+
+Listing 39.1: Ein einfaches Applet