Deep Side of Java〜Java 言語再入門 第4回 〜 アプレット、スレッド、AWT

アプレットとは

HTMLからの呼び出し方






アプレットとは

HTMLからの呼び出し方

HTML4.0 で動的コンテンツを埋め込む一般的なタグとして Object タグが制定されたが、これは各ブラウザでのサポートがまだ薄い。このため、旧来からあるタグである Applet タグを使わざるを得ない。一般的な書式はこうである。

<applet code="test.class" codebase="http://berio.kobe-du.ac.jp/myjava/" 
        archive="test.jar" width=200 height=100>
<param name="speed" value="10">
<param name="top" value="100px">
<param name="title" value="Koji Sugiura's Applet!">
<p width=200>あなたの現在のブラウザでは、Java が無効になっているか、
APPLET タグを認識しないブラウザではないでしょうか。
残念ながらアプレットを実行できません。</p>
</applet>

APPLETタグの属性を示す。

code="test.class"
必須:Applet が実行を開始するトップレベルのクラスを指定する。一般に Applet であっても複数のクラスによって成立しているため、トップレベルのクラスだけを指定すれば、そこから呼び出される他のクラスファイルは自動的に指定なしで、サーバから転送される。ここでは決してURLを指定しないことを確認しておく。

codebase="http://berio.kobe-du.ac.jp/myjava/"
必須:code属性がURLを指定しないために、この属性でURLを指定することになる。しかし、ファイル名自体は不要であり、上記の例だと実際には「http://berio.kobe-du.ac.jp/myjava/test.class」が転送される。つまり、code 属性と codebase 属性がペアになってURLを指定すると理解しても良い。

archive="test.jar"
任意:APPLETタグのURL指定には大きな例外がある。複数のクラスや Applet で使う画像などを、主として通信速度上での理由から圧縮してまとめた jar ファイルの問題があるからである。この jar 形式で Applet が提供されている場合、jar 形式のファイル名を指定できなくてはならない。これを実現するのがこのarchive属性である。つまり、Applet が jar形式で提供されている場合には、実際にサーバが転送するのは、「codebase属性値/archive属性値」となり、上記の例では「http://berio.kobe-du.ac.jp/myjava/test.jar」になり、「test.class」はtest.jarに含まれる、トップレベルのクラスであることを表示するに過ぎなくなる。とはいえ、当然、この属性値がない場合には、「http://berio.kobe-du.ac.jp/myjava/test.class」が転送されることになるのは言うまでもない。

width=200 height=100
実質上必須:APPLET はHTMLのレイアウト上では単に画像と同様な扱いを受けるが、画像と違ってそれ自体に大きさを持っていない。そのため、width,heightによって、表示上の幅と高さを指定してやらないと、HTMLは Applet をどう配置したらよいか分からない。だから、実質上必須である。このサイズは Applet 内部から取得できる。

hspace,vspace,alignなどの属性
任意:Applet はHTMLのレイアウト上では、単に画像と同様な扱いを受ける。そのため、IMGタグで指定できる配置関連のタグを同様に指定できる。

しかし、同一の Applet をその度ごとに別なデータを与えてやって、違った結果を得るようにしたい場合もある。比喩的に言えば、Applet に対する「引数」を与えるのが、PARAMタグである。PARAMタグは APPLETタグ内部に配置し、いくつ置いてもよい。PARAMタグではAppletに対する「引数」を次のように与える。

name=変数名 value=変数の値
引数名が「name属性値」である引数に、「value属性値」である値を与える。上記の例だと、「speed=10; top="100px"; title="Koji Sugiura's Applet!";」と Java ソースに与えたのと同様な効果を得ることができる(ようにプログラムされているはずである)。どういう引数名にどういう値を指定できるかは、当然その Applet によって千差万別である。

SCRIPTタグやFRAMESETタグであったような、NOSCRIPT,NOFRAMESタグに相当する、「その機能をサポートしていない場合に実行される部分を指定する」タグは、APPLETタグでは(NOAPPLETタグは)存在しない。基本的な指定内容はAPPLETタグとPARAMタグで指定するので、APPLETタグ内部のテキストはAPPLET自体には影響しない。これを利用して、そのAppletが利用できない場合の「お断り」を書くのが一般的である。



copyright by K.Sugiura, 1996-2006