Java Reference
In-Depth Information
Methode am Ende des Quellcodes vor. Sie verschieben als Anweisungsfolge die gesamte
while
-Schleife aus der
ActionListener
-Methode, die mit der Checkbox zum Umschalten
auf Automatik verbunden ist.
public void run() {
while (jCBAutomatik.isSelected()) {
try {
jAmpel.setPhase(1);
Thread.sleep(rotPhase);
jAmpel.setPhase(2);
Thread.sleep(rotgelbPhase);
jAmpel.setPhase(3);
jAmpel.getHeight());
Thread.sleep(gruenPhase);
jAmpel.setPhase(4);
Thread.sleep(gelbPhase);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Listing 14.7
run-Methode für den Thread
Sie können bei der Gelegenheit auch schon einmal sämtliche
paintImmediately
-Anwei-
sungen löschen. Die sind beim Einsatz eines Threads nicht mehr erforderlich.
Es fehlt jetzt nur noch die Erzeugung des Threads. An der Stelle, an der bisher die
while
-
Schleife stand, tragen Sie die folgenden beiden Anweisungen ein:
Threadt=newThread(this,"Automatik");
t.start();
Listing 14.8
Erzeugung des Threads
Sie erzeugen damit zuerst ein Objekt der allgemeinen Klasse
Thread
und geben mit
this
im Konstruktor an, dass die
run
-Methode in der aufrufenden Komponente selbst
(Ampelsteuerung) zu finden ist. Ein Test des Programms sollte zeigen, dass der Durch-
lauf der Ampelphasen die Bedienung des Programms nicht mehr blockiert. Die Anwei-
sungen werden parallel zum normalen Programmablauf abgearbeitet. Sie können jetzt
jederzeit die Automatik wieder abschalten.