キャンバス
独立した描画エリア
独立した描画エリアをコンテナ上に配置することができます
この領域をキャンバスと呼びます
たとえば、画像アプリケーションなどで決められた範囲に画像を表示させる場合
キャンバスとして独立したオブジェクト単位で操作すると非常に楽です
キャンバスの生成にはjava.awt.Canvasクラスを使用します
このクラスはComponentクラスを拡張しています
コンストラクタはパラメータを受け取りません
public Canvas()
これをコンテナに追加することで、独立したウィンドウ領域を持てます
Canvas()を継承したクラスでpaint()メソッドをオーバーライドすることで
独立した描画領域に画像や文字などを表示させることが可能です
import java.applet.Applet;
import java.awt.*;
/* <applet code="test.class" width="300"height="300">
<param name="img" value="img/test.jpg">
</applet>
*/
public class test extends Applet {
public void init() {
GraphicsArea ga = new GraphicsArea(
getImage(getDocumentBase() , getParameter("img")));
ga.setSize(200 , 200);
add(ga);
}
}
class GraphicsArea extends Canvas {
Image img;
public GraphicsArea(Image img) {
this.img = img;
}
public void paint(Graphics g) {
Dimension dim = getSize();
g.drawImage(img , 0 , 0 , dim.width , dim.height , this);
}
}
これを実行すると、コンテナ上に指定したサイズでキャンバスが表示されます
このプログラムでは、キャンバスに指定した画像を表示させます