2009-05-26 9 views
1

私は2つのスレッド、1つのスレッドの再描画を作成し、もう1つはポイントからユーザーがクリックする場所にイメージを移動する小さなJavaアプレットを持っています。問題は、私が移動機能を呼び出すと、画像がユーザのクリックするところまでループするが、移動を行っているスレッドとペイントを行っているスレッドが分かれているにもかかわらず、ループが壊れるまで塗り直されないということだ。スプライトの移動中にアプレットを再描画するにはどうすればよいですか?

キーポイントの短縮バージョン:

  • 私のプログラムは、(塗料を使用してアプレットである)方法

  • 私は1つの画像と他の塗料画像

  • を移動させる2つのスレッドを持っています
  • イメージを移動しているときにループしています

  • ペイントスレッドは依然として担当者を呼び出していますaint()しかし、それは呼び出しが行く限り、それは決してrepainttsしません

お時間をありがとう、ありがとうございます。

答えて

1

JavaのAWTフレームワークの描画システムの紹介を読むことは有益かもしれません。サンからの例を見てください。http://java.sun.com/products/jfc/tsc/articles/painting/index.html

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

+0

移動コードが別のクラスによって処理されるため、各位置の変更後に再描画メソッドを呼び出すことはできません。とにかく、それは呼ばれていないので、再塗装の問題ではありません。イメージが動くまでペンキをかけるだけです。 – MESLewis

+0

コードを表示すると、より簡単にお手伝いします。 –

関連する問題