• ベストアンサー

paintメソッドについて

repaintメソッドはpaintをすぐに呼び出すのではなく、イベントが終了するまで再描画されないと聞きました。そこで、イベント中でもpaintを即座に呼び出せるメソッドはないでしょうか? どなたかご回答お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

あります。 paintImmediately というメソッドが用意されています。 http://wisdom.sakura.ne.jp/system/java/swing/swing7.html

その他の回答 (1)

noname#161640
noname#161640
回答No.1

>イベント中でもpaintを即座に呼び出せるメソッドはないでしょうか? ありません。そもそも、画面表示はプログラマの都合で瞬時に行えるような仕様にはなっていないのです。表示を更新するのに必要な条件がクリアされ描画できるという段階になって初めて更新が行える、だからこそpaintがすぐさま呼び出せないように作ってあるわけです。 画面の再描画は、通常、イベントキューに更新処理が追加されます。このキューにスタックされた処理が順に行われていき、登録された再描画の順番が来て初めて更新処理がされるようになっています。ですから何かのmethodなどの処理を実行中でイベントキューにスタックされたイベントの処理が停止された状態ではどうしようもありません。 通常、このような際には、Thread.sleepなどでメインスレッドに待ち時間を与えてやるなどしてスタックされたキューが処理できる猶予を与えます。またアニメーションのような処理ならば、別スレッドを立てて実行してやるのが基本です。

関連するQ&A