グラフィックスを扱う |
このページでは、交互に並ぶます目をペイントすることによって、動きのある市松模 様を生み出すアプレット例を示す。 このます目は Graphics の fillRect() メソッドによって描画される 。 以下に、このアプレットが動作する様子を示す。
使用中のブラウザは 1.0 Java アプレットを実行することができない。したがってここでは実行中のスナップショットを示す。
このグラフィックスは完全になめらかには動作していないことに気づかれるはずであ る。描画領域の一部または全域にわたって、気になるほどのフラッシングが起きてい る。 次のページで、このフラッシングの原因を解説し、それを排除する方法を説明する。
アプレットのコードも参照できる。 このコードと動画テンプレートの主な相違点は、現在のフレーム番号に応じたアルゴ リズムを用いて、塗りつぶされた矩形を描画するよう paint() メソッドが変更されたことである。 また、このアプレットには 2 組のインスタンス変数も示されている。1 つはます目 のサイズを保持し、もう1つは次に描画する列が黒のます目で始まるかどうかを把 握する。 ユーザは新規のアプレットのパラメータを通して、ます目のサイズを設定することができる。
以下に、実際の描画を実行する paint() のコードを示す。 プログラムが描画するのは黒いボックスだけ (true の fillSquare に よって指示される) で、他のボックスは描画していないことに注意する。 これでうまくいくのは、デフォルトでは、Component の描画領域が、 paint() メソッドが呼び出される直前にクリアされる (背景色に設定される) からである。
// 必要があれば矩形を描画する。 if (fillSquare) { g.fillRect(x, y, w, h); fillSquare = false; } else { fillSquare = true; }
グラフィックスを扱う |