Previous | Next | Trail Map | Writing Applets | アプレットの概説


まとめ

このレッスンでは、大量の、Java アプレットを書くために知っておくべきほとんどすべての情報を提供した。 このページでは全体像をつかむのに役立つ情報を少々加えた上で、これまで読者が学 んできたことをまとめる。

最初に読者が学んだのは、アプレットを書くには java.applet Applet クラスのサブクラスを作成しなければならないことである。 自分の Applet サブクラスには、init()start() paint() メソッドの中の少なくとも 1 つを実装する必要がある。init()start() メソッドはstop() および destroy() とともに、アプレットのライフサイクルにおいて主要なイ ベントが発生するときに呼び出される。paint() メソッドは、アプレットが画面上にそれ自体を描画する必要 があるときに呼び出される。

Applet クラスは AWT の Component および Container クラスから継承する。 Component からは描画とイベント処理の能力を、Container からは他の Component を組み込み、レイアウトマネージャにそのサイズと位置を制御させる能力を継承する 。Applet からは、ロードやアンロードのような、ライフサイクル上の主要なイベン トに応答する能力を含め多くの能力を継承する。 この節が進むにつれ、Applet クラスが提供する能力についてさらに多くのことがわかってくるはずである。

アプレットは <APPLET> タグを使って HTML ページに組み込まれる。ブラウザのユーザがアプレットを含むページにアクセスすると、以下のことが発生する。

  1. ブラウザがアプレットの Applet サブクラスのクラスファイルを探す。 クラスファイル (Java のバイトコードがはいっている) の位置は <APPLET> タグの CODE および CODEBASE 属性に指定されている。
  2. ブラウザがネットワークを通じてバイトコードをユーザのコンピュータに持ってくる 。
  3. ブラウザが ofApplet サブクラスのインスタンスを作成する。 アプレットと言うとき、一般にはこのインスタンスを指してい る。
  4. ブラウザがアプレットの init() メソッドを呼び出す。 このメソッドは、必要な一度だけの初期化を実行する。
  5. ブラウザがアプレットの start() メソッドを呼び出す。 このメソッドはアプレットの仕事を行うためのスレッドを開始することが多 い。

アプレットの Applet サブクラスは、メインの制御クラスであるが、アプレッ トはさらに他のクラスも使用することができる。 このような他のクラスは、Java 環境の一部として提供される、ブラウザにとってロ ーカルなものか、ユーザが用意したカスタムクラスのどちらかである。 アプレットがあるクラスを初めて利用しようとすると、ブラウザはそのブラウザを実行しているホスト上でそのクラスを見つけようとする。 ブラウザがそこでクラスを見つけられない場合は、アプレットの Applet サブクラス の発信元と同じ場所でクラスを探す。 クラスが見つかると、ブラウザはそのバイトコードをロードし (必要があればネット ワークを介して)、アプレットの実行を続ける。

実行可能コードをネットワーク上でロードすることには、高いセキュリティリスクが伴う。Java アプレットではこのような危険の一部は軽減されている。これは、たと えばランダムメモリに対するポインタを許可しないなど、Java 言語が安全に配慮されているからである。さらに、Java 互換のブラウザは、制約を課すことによってセキュリティを向上させている。 この制約には、アプレットは非 Java 言語で書かれたコードをロードできない とか、アプレットはブラウザのホスト上でファイルの読み書きができない、などがあ る。


Previous | Next | Trail Map | Writing Applets | アプレットの概説