Appletクラスのグラフィック関連のメソッド

Appletクラスに用意されたグラフィック処理のメソッドについて
以下のメソッドはグラフィックの処理を行う特定の役割が決められている メソッドです。これらのメソッドは、Appletのスーパークラスである Componentクラスから継承されたものです。

グラフィックの表示に関連するメソッド

 描画処理の内容を定義するメソッドが paint() と update() です。 paint()は Componentのオブジェクトの再描画が必要になった時 (最初に画面に現れる時も含む)に自動的に呼び出されます。 これに対して、update()は repaint()メソッドによって間接的に呼び出されます。
 paint(), update()のメソッドは 明示的に呼び出すことはできません。 引数の Graphicsクラスのオブジェクトは、 これらのメソッドが自動的に呼び出される時に外部から与えられるデータです。 結果として描画に必要な処理は、 paint()およびupdate()メソッドとその内部から間接的に呼び出される メソッドによって、すべての処理が行われることになります。 ウィンドウ上のアプリケーションでは、 描画処理の実行のタイミングをあらかじめ予測することができません。 そのため、上のようなスタイルにすべきなのです。

 repaint()は描画処理が必要であることをプログラム中で明示的に 要求するためのメソッドです。 repaint()は update()を呼び出すように要求を出します。 repaint() が要求を行っても即座に update()が呼び出されるとは限らない 点に注意してください。引数に「タイム・アウト」の時間を指定することも 可能です。(単位はミリ秒) また、再描画の処理の対象となる範囲を4つの int型のデータの組で 指定することができます。4つのデータの意味は順に、 描画領域の X座標、Y座標、横のサイズ、縦のサイズです。

 repaint()メソッドが直接呼び出すのは update()メソッドですが、 Appletクラスの(正確には Componentクラスの)定義では、update()は いったん表示をクリアして、paint()メソッドを呼び出すという内容になっていまいす。 したがって update()の内容を再定義しない限りは、 repaint()によって paint()が呼び出されるように見えます。 アプレットに次々描画を追加してくような場合には、update()メソッドの再定義が 必要となります。