アプレットサイズ


動的にサイズを得る

アプレットのサイズはHTMLのタグで決定されます
そのため、アプレットが実行されるときにどのサイズで実行されるかプログラマは予想できません

実用に耐え、拡張性の高い柔軟なアプレットは動的にサイズを得る必要があります
アプレットのサイズを得ることで、より完成度の高い表現が可能です
サイズを得るにはjava.awt.Dimensionクラスを利用します
このクラスはコンポーネントのサイズをカプセル化しています。以下はこのクラスのはコンストラクタです

public Dimension()
public Dimension( Dimension d )
public Dimension( int width, int height )

一番上は、縦横の幅が0のディメンションオブジェクトを生成します
dはDimensionオブジェクトを渡します。コンストラクタは渡されたオブジェクトのサイズのディメンションを生成します
widthとheightは、生成するオブジェクトの横と縦のサイズを指定します
指定されたサイズにしたがって、ディメンションが生成されます

アプレットのサイズを得るには、インスタンスを直接生成することはありません
ComponentクラスのgetSize()メソッドを利用します

public Dimension getSize()

このメソッドはDimensionオブジェクトを返します

Dimensionクラスは、heightとwidthの二つの定数を持っています
heigthはコンポーネントの縦のサイズを、widthはコンポーネントの横サイズを格納しています
この定数から、コンポーネントのサイズを動的に得ることができます
import java.applet.Applet;
import java.awt.*;

/*      <applet code="App17.class" width="400" height="200">
        </applet>*/

public class App17 extends Applet {
        public void init() {
                setBackground(Color.white);
                setForeground(Color.black);
        }

        public void paint(Graphics g) {
                Dimension dim = getSize();
                g.drawOval(0 , 0 , dim.width - 1 , dim.height - 1);
        }
}
アプレット

このアプレットは、先ほどプロンプトから入力していただいたサイズです
(JavaScript対応のブラウザでなければ、アプレットは見れません)
入力のサイズは、セキュリティのため意図的に制限していますが、ある程度のサイズまでは自由に変更できます
(数値以外の入力は400×200になります)

getSize()メソッドでアプレットのディメンションを得ています
ここで得られたdimオブジェクトは、widthとheightの定数を持っていますので
あとはそれをdrawOvar()で利用しています



前のページへ戻る次のページへ