0

特定の時間を使用して、いくつかの長方形を次々に描画したい。私は thread.sleep() メソッドを使用しますが、スレッドの動作を直接停止し、再開しません。

4

6 に答える 6

2

代わりに、ワーカー スレッドでThread.sleep(long millis)を使用します。

于 2012-10-10T08:41:44.813 に答える
2

スリープのミリ秒数を指定します。

Thread.sleep(2000); // two seconds

を処理する必要があることに注意してくださいInterruptedException

于 2012-10-10T08:41:53.360 に答える
2

スリープを別のスレッドに配置する必要があります。GUI スレッドをスリープ状態にすると、GUI がフリーズします。

編集:悪いことに、代わりにこれを補足コメントとしてここに残します。

于 2012-10-10T08:42:00.867 に答える
1

TimerおよびTimeTaskクラスを使用できます。

このを参照してください。

于 2012-10-10T08:42:31.503 に答える
0

各描画を個別の でインスタンス化する必要がありますthreadthreadスリープの for every ループを個別に作成します。

このように、 のスレッドloopingと のスレッドを分離しますdrawing。したがって、凍結を取り除きます。

public class RunTest implements Runnable{

    @Override
    public void run() {
        // codes for drawing
    }

}

そしてあなたのメインで:

   try {
      while (true) {
        Thread t = new Thread(new RunTest());
        t.start();
      }
    } catch (InterruptedException iex) {}

これにより、描画用のスレッドが無限に作成されます。このループを変更するだけです。

スレッドについてはこちらをご覧ください。

于 2012-10-10T08:46:04.783 に答える
0

Java executorsを見てください。これらは一定時間実行できます。次に、各エグゼキュータ ユニット内に長方形を描くことができます。( EDTで)このAPI ドキュメントには、上部に役立つ例があります。

于 2012-10-10T08:42:31.033 に答える