![]() |
Java - Ereignisgesteuerte
Programme Homepage von PS-Trainer - Entwicklung - Java - an PS-Trainer |
|
| Ereignisgesteuerte Programme: Hinter diesem Stichwort verbergen sich die meisten in "Fenstern" ablaufenden Programme, im Gegensatz zu altertümlichen "Konsolen"-Programmen |
Ein typisches Programm dieser modernen Art führt nach seinem Start die Initialisierung durch: Ein Fenster wird geöffnet, Menüs, Buttons und Paletten werden aufgebaut. Dann folgt die entscheidende - namensgebende - Phase: In der Ereignis-Warteschleife (event loop) wartet das Programm auf Ereignisse, typisch auf die Bedienung von Maus oder Tastatur. Wenn ein derartiges Ereignis (event) eintritt, wird die Information darüber vom Betriebssystem an das Programm weitergegeben (soferne es den "Focus" der Aufmerksamkeit besitzt). Das Programm versucht normalerweise, diese Daten sinnvoll zu nutzen, d.h. die Art des Ereignisses zu analysieren, und daraus Handlungen (die Ausführung von Programmteilen) abzuleiten; Das Programm "reagiert" auf die durch die/den UserIn ausgelösten Ereignisse. Diese Event-Loop wird so lange ausgeführt, bis das Programm die Anweisung zum Beenden erhält (oder abstürzt). In diesem Fall wird meist noch "aufgeräumt", d.h. alle benutzten Resourcen freigegeben, dann das Programm beendet. |
![]() |
Inhalt dieser Seite: |
| Buttons: So kündigen sie die Verwendung des Objekts "MyButton" der Klasse Button an. Die Klasse Button ist in java.awt enthalten. |
|
|
| Die Initialisierung eines Buttons: Beachten sie, dass jeder Button mit default-Farben erzeugt wird, wenn sie das nicht anders anordnen. Das kann dazu führen, dass ihr Button vorhanden ist, man ihn jedoch (vor dem gleichfarbigen Hintergrund) nicht sieht. Mit der add()-Methode fügen sie ihrem Applet diesen Button dazu. |
|
|
| Übrigens: auch HTML kennt Buttons: |
| Action: So "erfahren" sie von den Ereignissen: Die Methode "action" erhält Informationen über Event und Object. Klasse Event ist die Art des Ereignisses, Object ist jenes Objekt, welches das Ereignis ausgelöst hat. Analyse 1: Sie testen, ob das Event der gesuchten Klasse angehört (Operator instanceof). Analyse 2: Sie testen, welcher von mehreren Buttons das Ereignis ausgelöst hat. Dazu holen sie sich mit Methode toString() den "Text" des Buttons in ein String-Objekt (hier: thetext). Die 3 blau eingefärbten Zeilen enthalten den eigentlichen Event-Handler: Dieser Code wird genau und nur dann ausgeführt, wenn das gesuchte Ereignis eintritt. Anm.: "this" bezeichnet das aktuelle Objekt, also das Applet, dessen gesamte aktuelle Grafik hier dem Objekt g zugewqiesen wird. "Aktuell" heisst hier: "Zum Zeitpunkt des Ereignisses" !!! |
Das Muster eines Event-Handlers: Sie müssen zuerst das gesuchte Ereignis & Objekt herausfinden, dann den entsprechenden Code ausführen. Alle anderen Ereignisse und Objekte lassen sie ungenutzt "durchfallen". |
| Checkbox: So kündigen sie die Verwendung des Objekts "MyCheck1" der Klasse Button an. Die Klasse Checkbox ist in java.awt enthalten. |
|
|
| Initialisierung einer typischen Checkbox: Farbgebung (wie oben "Buttons"). Zusätzlich: der Status jeder Checkbox kann nur entweder "true" oder "false" (=angekreuzt ober leer) sein. Tip: In einer Gruppe von Checkboxen können beliebig viele davon leer oder angekreuzt sein, und zwar vollkommen unabhängig voneinander. |
|
|
| Programmierung der Event-Handler:
Sie müssen wie bereits gezeigt das gesuchte Event herausfiltern, und bei Zutreffen entsprechenden Code auslösen. Meist wird durch das Anklicken keine Programm-Reaktion ausgelöst, man wartet eher, bis die/der UserIn sämtliche vorhandenen Checkboxes bearbeitet hat, und bietet als gemeinsamen Abschluss einen Button (s.o.) an. |
|
|
| Übrigens: Auch HTML kennt Checkboxes: Welche Betriebssysteme kenne sie ? |
| CheckboxGroup: So kündigen sie die Verwendung des Objekts "MyGroup" der Klasse CheckboxGroup an. |
|
|
| Achten sie bei der Initialisierung darauf, alle Checkboxes
einer Gruppe mit Ausnahme von genau einer Checkbox abzuschalten ("false").
Als 2. Argument des Konstruktors übergeben sie die CheckboxGroup, zu der eine Checkbox gehört, als 3. Element die Voreinstellung. Vergessen sie nicht, erzeugte Objekte zu ihrem Applet hinzuzufügen. |
|
|
| Programmierung der Event-Handler:
Sie müssen wie bereits gezeigt das gesuchte Event herausfiltern, und bei Zutreffen entsprechenden Code auslösen. Tip: Mit der String-Methode indexOf() erhalten sie die Position eines substrings in einem String. Position 0 ist das erste Zeichen, usw. Das Ergebnis -1 zeigt an, dass der gesuchte substring nicht gefunden wurde. |
|
|
| Übrigens: Auch HTML kennt Radiobuttons: Über welche Java-Kenntnisse verfügen sie ? |