1

私は 2 つのスレッドを作成する小さな Java アプレットを持っています。問題は、移動関数を呼び出すと、ユーザーがクリックした場所に画像が表示されるまでループしますが、移動を行うスレッドと描画を行うスレッドが別々であっても、ループから抜け出すまで再描画されないことです。

キーポイントの短縮版:

  • 私のプログラムは paint() メソッドを使用するアプレットです

  • 私は2つのスレッドを持っています.1つは画像を動かし、もう1つはその画像をペイントします

  • 画像を移動しているとき、それはwhileループにあります

  • ペイント スレッドはまだ repaint() を呼び出していますが、呼び出しに関する限り、再描画は行われません。

お時間をいただきありがとうございます。

4

1 に答える 1

1

Java の AWT フレームワークの描画システムの紹介を読むと役立つ場合があります。Sun の例を見てみましょう: http://java.sun.com/products/jfc/tsc/articles/painting/index.html

あなたの場合、2 つのスレッドは必要ありません。アプレットの再描画を担当するスレッドは、AWT によって作成されます。これは、イベント ディスパッチ スレッドまたは EDT と呼ばれます。したがって、画像の位置を変更するだけでよく、変更のたびにアプレットで repaint メソッドを呼び出します。

于 2009-05-26T19:56:41.930 に答える