Java Reference
In-Depth Information
Java stellt Ihnen für diesen Zweck die Methode sleep der Klasse Thread zur Verfügung.
Und schon nehmen wir den ersten Kontakt mit der Klasse Thread auf. Die Methode
erwartet als Parameterwert eine ganze Zahl. Mit diesem Zahlenwert geben Sie der
Methode an, wie viele Millisekunden die Unterbrechung dauern soll. Sie können sich
bei dieser Zeitangabe aber nicht darauf verlassen, dass sie exakt eingehalten wird.
Betrachten Sie den Wert eher als Richtwert. Der Name der Methode deutet schon darauf
hin, dass sie den Programmablauf gewissermaßen in einen Schlafzustand versetzt.
Genaugenommen versetzt sie aber nur einen Thread in diesen Zustand. Besteht Ihr Pro-
gramm nur aus einem einzigen durch main gestarteten Thread, dann ist auch Ihr gesam-
ter Programmablauf in den Wartezustand versetzt.
Sind mehrere Threads im Spiel, dann können diese sich gegenseitig auch unterbrechen.
Der unterbrochene Thread wirft dann eine InterruptedException . Setzen Sie Threads
ein, und sei es nur, um die Methode sleep zu verwenden, wird Eclipse Sie aus diesem
Grund darauf aufmerksam machen, dass Sie auf diese Interrupts in irgendeiner Weise
reagieren müssen.
Nach diesen Erläuterungen können Sie einen ersten Versuch unternehmen und einen
ActionListener für die Checkbox nach Muster von Listing 14.3 erstellen. Als zeitliche
Richtwerte wurden der Eigenschaftsliste des Frames folgende Definitionen hinzuge-
fügt:
private int rotPhase = 3000;
private int rotgelbPhase = 500;
private int gruenPhase = 3000;
private int gelbPhase = 500;
Damit ein Durchlauf nicht zu lange dauert, wurden für die Rot- und Grünphasen
3 Sekunden und für die beiden Übergangsphasen eine halbe Sekunde festgelegt.
Über die CheckBox jCBAutomatik kann der Automatikmodus ein- bzw. ausgeschaltet
werden. Das folgende Listing erläutert, welche Aktionen beim Umschalten ausgelöst
werden:
private void jCBAutomatikActionPerformed(ActionEvent evt) {
if (jCBAutomatik.isSelected()) {
jRBtnRot.setEnabled(false);
jRBtnRotGelb.setEnabled(false);
jRBtnGruen.setEnabled(false);
jRBtnGelb.setEnabled(false);
jRBtnAus.setEnabled(false);
while (jCBAutomatik.isSelected()) {
Search WWH ::




Custom Search