- 締切済み
Applet内のpaintメソッド
Applet内のpaintメソッドで前もって配列に読み込んでおいた画像を 複数枚表示しようと、for文を利用して描画しています。 しかし、paint()が何回も呼ばれ(コンソールにデバック文を表示して確認) 思ったとおりの配列indexになりません。 paintが起動直後に複数回呼ばれるのは仕様でしょうか? よろしくおねがいします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
noname#49664
回答No.1
>paintが起動直後に複数回呼ばれるのは仕様でしょうか? 複数回呼ばれる仕様になってるかどうかはわかりませんが、AWTの表示コンポーネントは、再描画の必要が生じたとき、可能な限り速やかにupdateされるように設計されています。 例えば、あるイメージファイルを読み込んで表示するようなとき、ネットワークの環境によっては転送にかかる時間は変わります。すべて読み込むまで全く画面が反応しないのでは困ります。そこでJavaではMediaTrackerで読み込み状態をトラッキングしたり、ImageProducerで更新管理をしたりできるようになっているわけですね。Javaでは必要に応じてイメージの読み込み途中であっても画面が更新できますし、それは必要な措置なわけです。 従って、必要に応じて起動時に複数回表示の更新が行われることはあると思います。 「paint()が何回も呼ばれ(コンソールにデバック文を表示して確認) 思ったとおりの配列indexになりません」 これがよくわからないのですが。paintが何回呼ばれようと、プログラムの動作に影響が出るようなことはないはずですが、いったい、どういうやり方をしているのでしょう? それがわからないと何ともいえないのですが・・。