私は信号機システムをシミュレートするつもりです。 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");
}
}
}
}
は私の道クラスから、この揮発性変数停止をチェックする方法はあり、私のTrafficLightクラスです。
もしそうでない場合は、これを行う別の解決策を提案してください。
ありがとうございました。
ストップ変数へのアクセスを得るためにそれを使用するには、この宿題ですか?もしそうなら、あなたは '宿題 'タグを追加すべきですか? – helios
'while(true)...'ブロックで 'InterruptedException'(これはcatchブロックで何をするのか)を呑み込むのは悪い考えです。アプリケーションが正常にシャットダウンするのは難しいでしょう。終了する。あなたがそれを処理したくなければ 'RuntimeException'としてそれを再現する方がよいでしょう。 – artbristol