26.1.9.11 描画の環境

アプレットFigure2では

fillRect(50, 50, 300, 100)

という指定で,左上が(50, 50),右下が(350, 150)である長方形を描きました.それで,これをうまく囲むように,HTMLファイルでは

WIDTH=400 HEIGHT=200

と指定しました.HTMLファイル側で“場”を用意し,アプレットがその中に“図”を描く,という感じです.しかし一般的に言って,このように絶対的な数値によってプログラムを作るのは好ましくありません.プログラム変更が困難となるからです.また今の場合HTMLファイルとアプレットの両方での指定を合わせなければならないという不都合もあります.どちらか片方で指定して他方がそれに従う,という格好にならないでしょうか.

ここでは“場”を用意するのはHTMLファイル側でしたから,

アプレットがHTML側の状況を知る

ことが可能ならよいことになります.そのために,アプレット用のメソッドgetSizeが用意されています.プログラムの中で

w=getSize().width;

h=getSize().height;

を実行すると,HTMLファイルで指定した幅と高さを知ることができます. たとえば,HTMLファイルで指定した長方形エリアの真中に半径5の円を描くには

g.drawOval(w/2-5, h/2-5. 10, 10);

とすればよいのです.Javaの楕円の位置指定が,その楕円を囲む長方形の左上角であることに注意しましょう.

このgetSizeメソッドを使った例を次に示します.