画像貼り付け

では画像を貼りつけましょう。このページではImageSample02.javaを作ります。

Canvasに画像を描くにはdrawImageを使えば良いことはすぐに解ります。そこでImageCanvaspaint(Graphics g)メソッドに

g.drawImage(image, 0, 20);

を追加します。このメソッドはg.drawImage(com.nttdocomo.ui.Image img, int x, int y)という引数を取ります。

そこで問題はcom.nttdocomo.ui.Imageをどうやって取得するかです。アプレットのjava.applet.Applet.getImage(URL url)に相当するのは何か?ということですね。

ガイドをつらつら読んでいくとどうもMediaManagerを利用するようです。Imageをコンストラクタの中で取得するようにして

public ImageCanvas() {
    MediaImage mi = MediaManager.getImage("resource:///images/01.gif");

    try {
        mi.use();
    } catch (ConnectionException ce) {
        ce.printStackTrace();
    } catch (UIException uie) {
        uie.printStackTrace();
    }

    image = mi.getImage();
}

とコーディングしました。見てきましょう。

まず、

MediaImage mi = MediaManager.getImage("resource:///images/01.gif");

でjarファイル中のimages/01.gifを取得させます。識別子のresource:///はjarファイル中のリソースを取り出すことを示しています。

続いて

mi.use();

でリソースを取得します。どうもMediaManager.getImage()は宣言だけで、実際のリソースの取得はuse()が呼ばれたタイミングで行なわれているようです。取得するさいに例外が発生する場合があるのでそれを補足しておきます。

リソースが取得できたら最後に

image = mi.getImage();

com.nttdocomo.ui.Imageを取得します。

ImageSample01との違いはこんなところでしょうか。ではコンパイルして、事前検証して、パッケージ化しましょう。

表示する画像として01.gifを準備しました。これをimagesディレクトリに置き、jarファイル中のimages/01.gifとなるようにパッケージ化しています。

D:\iAppli>ijavac ImageSample02.java
D:\iAppli>iprev ImageSample02 ImageCanvas
D:\iAppli>cd output
D:\iAppli\output>jar cvMf image02.jar ImageSample02.class ImageCanvas.class images

ImageSample02.class を追加中です。(入 = 342) (出 = 251)(26% 収縮されました)
ImageCanvas.class を追加中です。(入 = 934) (出 = 531)(43% 収縮されました)
images/ を追加中です。(入 = 0) (出 = 0)(0% 格納されました)
images/01.gif を追加中です。(入 = 776) (出 = 671)(13% 収縮されました)

ADFはimage02.jamです。

ダウンロード用HTMLはhttp://www.segi.org/i/j/t/にあるので、iαppl対応携帯をお持ちの方はお試し下さい。


前の項目へ次の項目へ
「iαppliであそぼう!」のページへ
せぎてつ伝言板
このページの感想をどうぞ!
お名前(匿名OK):

メールアドレス:
Valid CSS! 最終更新日 : 2000年2月12日(月)
tetsu@segi.org