kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung

10 Exemplarische Darstellung des Delegations/Ereignis-Modells am Beispiel einer Scrollbar

scrollbar.zip - Quelltexte zu folgenden Beispielen.

Zur Orientierung

  • Das Programm wird in drei Schritten aufgebaut:
  • Herstellen eines Applets
  • Einfügen und Anzeigen einer Scrollbar
  • Funktionalität der Scrollbar durch Listener hinzufügen.

Herstellen des Applets

Applet erstellen

Bild 10-1: Applet erstellen.

Einfügen der Scrollbar

Einfügen der Scrollbar

Bild 10-2: Einfügen der Scrollbar.

Hinzufügen der Funktionalität

Hinzufügen der Funktionalität

Bild 10-2: Hinzufügen der Funktionalität.

Das Delegation/Ereignis-Modell

  • Über eine Implementierung des Delegation/Ereignis-Modells werden in Java GUI-Elemente mit Funktionalität versehen.
  • Durch Registrierung eines Listeners (Lauschers) bei einem GUI-Element, wird der Virtual machine der Auftrag gegeben, genau dann eine Objektmethode des Lauschers aufzurufen, wenn das GUI-Element benutzt wird.
  • Im Falle der Scrollbar wird beim Bewegen der Scrollbar die Methode adjustmentValueChanged(..) der Klasse Lauscher aufgerufen.
  • Dass dies so funktioniert wird dadurch gewährleistet, dass Lauscher die Schnittstelle AdjustmentListener implementiert.
  • Und AdjustmentListener ist vergleichbar mit einer abstrakten Klasse in C++, die festschreibt, dass erbende Klassen eine bestimmte Methode (hier adjustmentValueChanged(..)) implementieren.
  • So kann in Bibliotheksklassen ohne Kenntnis der speziellen Lauscher-Klasse vorbereitet werden, dass Implementierungen von AdjustmentListener in Scrollbar registriert werden können und die VM bei Bewegen der Scrollbar adjustmentValueChanged(..) des registrierten Objektes aufruft.
  • Insgesamt ist festzuhalten, dass so dem Anwendungsprogrammierer ohne tiefere Kenntnis der dahinterstehenden Mechanismen ein mächtiges, einfach zu nutzendes Werkzeug in die Hand gegeben wird, um GUIs mit Funktionalität zu versehen.