Systemsteuerung


... [ Seminar WWW und JAVA] ... [ Applets und das Java AWT ] ... [ Was ist das Java AWT ] ...


Übersicht: Systemsteuerung


Einleitung

Applets sind Javaprogramme, die durch einen Browser oder einen Appletviewer gestartet werden. Im Gegensatz zu Applikationen (alleinstehende Javaprogramme) enthält ein Applet keine main()-Methode, die seinen Ablauf steuert. Diese Steuerung übernimmt das System mit Hilfe von Methoden aus den Klassen Applet und Component.

Die folgenden Methoden reagieren automatisch auf die entsprechenden Systemereignisse. Sie müssen nicht explizit aufgerufen werden, um das Applet zu steuern. Diese Methoden können durch selbstgeschriebene Methoden in einer Subklasse von Applet überladen werden.


Appletsteuerung

Diese Subklasse von Applet überlädt keine der vier Methoden: Quellcode


Steuerung der Bildschirmausgabe

Die Ausgabe eines Applets auf dem Bildschirm wird hauptsächlich durch die drei Methoden aus der java.awt.Component Klasse gesteuert:

Mit dem folgenden Beispiel kann der Zusammenhang der Methoden getestet werden, indem die Maus über dem Applet gedrückt wird und dann das Browserfenster weggescrollt wird.

Quellcode

Diese beiden Beispiele zeigen, daß der Hintergrund in der default-Version von update() gelöscht wird und wie dieses einfach zu umgehen ist.

Quellcode Quellcode

Das Problem mit paint()-Aufrufen ist, daß es sich hierbei um Systemnachrichten handelt, die nicht gleich bearbeiter werden, sondern zuerst in eine Warteschlange eingereiht werden. Ist das System überlastet, kann es vorkommen, daß Java die Bearbeitung der noch nicht ausgeführten paint()-Aufrufe ignoriert und nur noch das letzte Bild zeichnet. Das Applet mit der nachfolgenden start()-Methode läuft zwar, trotzdem zeigt es nur eine leere Fläche.


Mouse-Events

Java unterstützt nur eine Maustaste, um die Plattformunabhängigkeit beizubehalten. Durch Flags kann aber auch eine rechte Maustaste (META_MASK ) oder eine mittlere Maustaste (ALT_MASK) abgefragt werden.

Alle Events landen in einer Warteschlange. Von dort werden sie ausgelesen und ihrem Typ entsprechend bearbeitet. Um ein Event aus dieser Queue zu entnehmen, muß die zugehörige Methode den Wert true zurückgeben.

Dieses einfache Beispiel für die Benutzung der Klasse java.awt.Event reagiert, wenn die Maus innerhalb der Appletfläche gedrückt wird.

Quellcode

Mit der im folgenden Beispiel verwendeten Methode handleEvent() können mehrere Events zusammen behandelt werden. Diese Methode hat nur den Nachteil, das durch ihren Aufruf die anderen Methoden zur Einzelbearbeitung (z.B. mouseUp()) nicht mehr aufgerufen werden.

Quellcode



Tastatur-Events

Es gibt 2 Ereignisse bei den Tastatur-Ereignissen: Taste gedrückt und Taste losgelassen.

Syntax:

boolean keyDown( Event evt, int taste)

boolean keyUp( Event evt, int taste)

In der Variablen taste steht entweder der ASCII-Wert der jeweiligen Taste oder der Wert für die Funktionstasten (LEFT, RIGHT, UP, DOWN, F1 - F12).

Die Zustände der ALT, STRG, SHIFT und der Meta-Taste können durch Bitmaskierung mit AND herausgefunden werden, d.h. wenn die AND-Verknüpfung mit 0 ein Ergebnis ungleich 0 ergeben wurde die jeweilige Taste gedrückt.

Folgendes Beispiel prüft, ob die SHIFT & Pfeil nach rechts gedrückt worden sind:
(taste == Event.RIGHT && (evt.modifiers & Event.SHIFT_MASK) != 0)

Entsprechend gilt dies für ALT-, STRG-, Meta-Taste:

Event.ALT_MASK
Event.STRG_MASK
Event.META_MASK

Zurück zum Inhaltsverzeichnis.


... [ Seminar WWW und JAVA] ... [ Applets und das Java AWT] ... [ Systemsteuerung ] ... [ Was ist das Java AWT ] ...