我將模擬交通燈系統。 我創建了擴展JFrame並實現Runnable的Road類。如何訪問Java中的可運行對象中的變量
在run()方法中,我添加了增加每輛車的Y位置的邏輯,現在模擬汽車的運動。 但是現在我需要在移動汽車之前檢查紅綠燈的狀態。
這是我的交通燈類,
import java.util.Random;
public class TrafficLight implements Runnable {
volatile boolean stop;
public TrafficLight(boolean stop) {
this.stop = stop;
}
@Override
public void run() {
Random randomGenerator = new Random();
while (true) {
if (stop) {
stop = false; //change current status
} else {
stop = true; //change current status
}
try {
Thread.sleep(2000 + randomGenerator.nextInt(2000));
} catch (Exception ex) {
System.out.println("error");
}
}
}
}
有什麼辦法來檢查這個volatile變量停止,從我的道路等級。
如果不是,請給我建議另一個解決方案來做到這一點。
謝謝。
這是功課?如果是這樣,你應該添加'家庭作業'標籤? – helios 2012-01-03 12:26:48
在'while(true)...'塊中吞下一個'InterruptedException'(這是你對catch塊做的事)是一個壞主意:你的應用程序很難優雅地關閉,因爲循環不會終止。如果你不想處理它,最好把它重新拋出爲'RuntimeException'。 – artbristol 2012-01-03 12:42:20