ImageObserver インターフェイスには、
イメージに変更が生じた場合に通知を受けて呼び出されるべき処理
を定義するための imageUpdate() メソッドと
8個の独立したビット値に割り振られた static定数が定義されています。
static変数はイメージの読み込みの状況を意味するものです。
(後の例で示すように、ビットのマスクとしてプログラム中で用います。)
| WIDTH | 横幅のサイズが確定した(サイズの値ではない)。 |
| HEIGHT | 高さのサイズが確定した(サイズの値ではない)。 |
| PROPERTIES | イメージのプロパティの情報を読み込んだ。 |
| SOMEBITS | イメージを途中まで読み込んだ状態。 |
| FRAMEBITS | いったんイメージを描いた後、まだ別のデータを読み込んでいる状態。 |
| ALLBITS | 全データ読み込み完了。(全部のビットが立っているという意味ではない。) |
| ABORT | 読み込み途中の途中で処理が放棄された状態。 |
| ERROR | エラー。イメージの元になるべきファイルが存在しない場合は、この値が返る。 |
アプレット(そのスーパークラスの Component )では、
imageUpdate() メソッドは、そのつど update() メソッドを呼び出すように
定義されています。
このデフォルトの設定では、イメージの読み込み途中でも表示が実行されます。
imageUpdate()には引数の1つとしてイメージの読み込み状況を記憶した int型の
変数が渡されます。その値に応じて処理を分けることが可能です。
また、イメージの読み込み状況を知るだけならば、checkImage()メソッドを用いる
こともできます。このメソッドの返値が、イメージの読み込み状況を表す int型の
数値です。情報を取り出すためにはビットのマスクを使う必要があります。
int state = checkImage( image, this );
if( (state & ERROR) == ERROR ) {
:
: