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.
Search WWH ::




Custom Search