Java Reference
In-Depth Information
try {
jAmpel.setPhase(1);
Thread.sleep(rotPhase);
jAmpel.setPhase(2);
Thread.sleep(rotgelbPhase);
jAmpel.setPhase(3);
Thread.sleep(gruenPhase);
jAmpel.setPhase(4);
Thread.sleep(gelbPhase);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}else{
jRBtnAus.setSelected(true);
jRBtnRot.setEnabled(true);
jRBtnRotGelb.setEnabled(true);
jRBtnGruen.setEnabled(true);
jRBtnGelb.setEnabled(true);
jRBtnAus.setEnabled(true);
jAmpel.setPhase(0);
14
}
}
Listing 14.3 Zeitsteuerung der Ampelphasen
Wird der Automatikmodus eingeschaltet, werden zuerst alle Radiobuttons inaktiv
gesetzt, bevor in einer while -Schleife immer wieder die vier Ampelphasen durchlaufen
werden. Der Aufruf der sleep -Methode nach jedem Phasenwechsel soll dafür sorgen,
dass die jeweilige Phase für den vorgesehenen Zeitraum bestehen bleibt. Der Block mit
den sleep -Anweisungen ist in einen try-catch -Block eingeschlossen, der auf eine even-
tuell auftretende InterruptedException reagiert. Die Schleife soll enden, wenn der Auto-
matikmodus wieder deaktiviert wird. Soweit die Theorie, die Ihnen auch einleuchten
dürfte. Sie sollten die Methode erstellen und anschließend das Programm in der Praxis
testen.
Hat Sie das Verhalten der Anwendung im Automatikmodus überrascht? Es scheint, als
sei die Anwendung so im Tiefschlaf versunken, dass sie sich nicht mehr aufwecken lässt.
Sie scheint sogar so fest eingeschlafen zu sein, dass sie nicht einmal die einzelnen
Ampelphasen durchschaltet. Ist sie etwa schon vor der ersten Phase eingeschlafen? Sie
erinnern sich sicher noch, dass in der Ansicht Console eine kleine quadratische Schalt-
Search WWH ::




Custom Search