Java Reference
In-Depth Information
14.2
Zeitlich gesteuerte Abläufe programmieren
Ein häufig auftretender Fall, für den Threads sinnvoll oder unumgänglich sind, ist die
Programmierung zeitlicher Abläufe. Es geht dabei um Abläufe, die sich in einem
bestimmten Rhythmus immer wiederholen und automatisch ablaufen. In bestimmten
Situationen soll in diese Abläufe aber immer noch eingegriffen werden können, um den
Ablauf zu unterbrechen oder den Rhythmus zu verändern.
14.2.1
Eine einfache Ampelsteuerung
In diesem ersten Beispiel geht es darum, eine einfache Ampelsteuerung zu program-
mieren. Sie kennen als Verkehrsteilnehmer die verschiedenen Phasen einer Ampelsteu-
erung. Es sollen zunächst nur die Phasen einer einzelnen Ampel programmiert werden.
Im Allgemeinen laufen die einzelnen Phasen automatisch nach einem bestimmten
zeitlich gesteuerten Schema ab. Für den Notfall sollte aber auch eine Steuerung von
Hand möglich sein.
Abbildung 14.1 Programm-Frame mit den vier Ampelphasen
In den meisten europäischen Ländern werden die Ampeln in vier Phasen geschaltet. In
Abbildung 14.1 ist der Programm-Frame mit einer Ampel in diesen vier Phasen darge-
stellt.
Der Frame beinhaltet neben der Ampel eine Gruppe von Radiobuttons, mit denen die
Ampel in einer der Phasen oder aber auch ganz ausgeschaltet werden kann. In diesem
Zustand werden alle drei Lampen grau dargestellt. Eine Checkbox zum Umschalten von
manueller Steuerung in eine Automatik vervollständigt den Frame.
Zur Darstellung der Ampel kann ein Panel, auf das drei Kreise bzw. Ovale gezeichnet
sind, verwendet werden. Der folgende Quellcode leitet eine neue Komponente JAmpel-
Panel vom Standard-Panel ab. Die paintComponent -Methode wird so überschrieben, dass
Search WWH ::




Custom Search