0

タイマーで「if」ステートメントを使用する際に問題が発生しました。if ループを約 1 秒ごとに実行するようにタイマーを設定していますが、「if」条件が満たされていない場合でも、if ステートメント内のアクションが実行されます。ここで何か間違ったことをしていますか、それとも不可能ですか?

コード:

    //GLOBAL TIMERS
    //car edge detection
    int initialDelay = 0; // start after 0 seconds
    int period = 50;        // repeat every 5 seconds
    final Timer carAI = new Timer();
    TimerTask task = new TimerTask() {
      public void run() {
          if (redcar.getX() == -50); {
              redcar.setIcon(new ImageIcon(gui.class.getResource("/main/redcar.png")));
              redcar.setLocation(redcar.getX() + 5, redcar.getY());
          }

      }
    };
    carAI.scheduleAtFixedRate(task, initialDelay, period);
4

1 に答える 1

4

@Oliのヒントが十分でない場合は、コンパイラがコードを認識したときに書き直します。

if (redcar.getX() == -50)
{;}
 ^  // the great ;
{
     redcar.setIcon(new ImageIcon(gui.class.getResource("/main/redcar.png")));
     redcar.setLocation(redcar.getX() + 5, redcar.getY());
}

問題を修正するには、そのセミコロンを削除してください。

于 2013-01-09T02:26:22.793 に答える