アプレットのサイズを取得

広告

アプレットの大きさは、アプレットを設置するHTMLファイルの中で記述された大きさとなります。ただ、プログラミングを行う上で、アプレットの領域をプログラム側で知るたい場合がありますが、getSizeメソッドで取得することが可能です。

getSizeメソッドはAppletクラスの親クラスであるComponentクラスで定義されているメソッドで、アプレットの描画領域の大きさを取得することが出来ます。

このコンポーネントのサイズを、Dimension オブジェクトとして返します。
Dimension オブジェクトの height フィールドは、このコンポーネントの
高さを格納し、Dimension オブジェクトの width フィールドは、このコン
ポーネントの幅を格納します。 

戻り値:
  このコンポーネントのサイズを示す Dimension オブジェクト

このメソッドを実行すると戻り値としてDimensionクラスのオブジェクトが帰ってきます。そこでDimensionクラスについて少し見ておきます。

Dimensionクラスのクラス定義は下記のようになっています。

  • java.lang.Object
  • java.awt.geom.Dimension2D
  • java.awt.Dimension
  • public class Dimension extends Dimension2D implements Serializable

このクラスは「width」と「height」という2つの値を保持するためのクラスで、先ほどのgetSizeメソッドを行うと、アプレットの描画領域の幅と高さの2つの値が設定されたDimensionクラスのオブジェクトとして帰ってきます。

実際に幅と高さを取り出すためには下記のようにします。

public void paint(Graphics g){
  Dimension size = getSize();
  int width = size.width;
  int height = size.height;
}

サンプル

では実際に試してみましょう。

AppletTest4.java

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Dimension;

/*
<applet code="AppletTest4.class" width="150" height="150">
</applet>
*/

public class AppletTest4 extends Applet{
  public void paint(Graphics g){
    Dimension size = getSize();
    int width = size.width;
    int height = size.height;

    System.out.println("width :" + width);
    System.out.println("height:" + height);
  }
}

実際にブラウザでアプレットを含むHTMLページを見てから、Javaコンソールに出力された内容を確認すると下記のようになります。

アプレットテスト

下記で実際に試して頂くことが出来ます。

AppletTest4.html

( Written by Tatsuo Ikura )