アプレットの実行
アプレットビューワ
アプレットのコードは、スタンドアロンのそれとは大きく異なる部分が多い
とくにmain()メソッドがないのは衝撃的でしょう
アプレットを作成するには、まずAppletクラスを継承します
そして、そのクラスのメソッドをオーバーライドすることによって建築していくのです
これはアプレットが特殊な環境下で実行されるためです
Javaアプレットの実行方法は、ブラウザで実行するかアプレットビューワで実行するかである
アプレットビューワーはJDK開発環境に付属している
この講座でも、基本的にはアプレットビューワーでアプレットを実行していることを想定します
ブラウザにアプレットを実行させる場合は、当然タグによってアップレットを呼び出します
<applet code="url" width="sizex" height="sizey"></applet>
codeにはclassファイルのURLを指定します
suzexはアプレットの横サイズを、sizeyには縦サイズを指定します
次に、この講座でアプレットのデバッグ時にメインとなるアプレットビューワの使い方を説明します
アプレットビューワーはHTMLからappletタグを抽出します
任意のファイルを指定すると、その中からappletタグを検索し、発見するとそのタグを実行します
通常はHTMLファイルに指定すれば、そのファイルが呼び出しているアプレットを実行できますが
なにもHTMLファイル以外でも、appletタグがあれば実行されるので
javaファイルにタグを書いてjavaファイルを指定するのがプロチックです
/*<applet code="url" width="sizex" height="sizey">
</applet>*/
このように、コメント化してタグを書いておけば
コンパイル時は無視され、アプレットビューワで実行する時はタグが検索されて同フォルダにあるclassファイルが実行されます
アプレットビューワは、コマンドラインで次のコマンドを実行します
appletviewer file_Name
file_Nameにはappletタグが指定されているファイルを指定します
では、メインのアプレットの説明に入ります
アプレットでは、まずアプレットを実行するクラスにAppletクラスを継承させます
次に、Appletクラスのメソッドをオーバーライドして操作します
Appletはスレッドオブジェクトの中で実行されています
スレッドではアプレットの状態により自動で呼び出されるメソッドが4つあります
- init() : 実行時に1度だけ呼び出されます。初期化作業にオーバーライドします
- start() : init()終了後、アプレット再開時に呼び出されます
- stop() : アプレット中断時に呼び出されます
- destroy() : アプレット終了直前に呼び出されます。この前に必ずstop()が実行されます
これらのメソッドをオーバーライドして、アプレットを制御します
たとえば、stop()が呼び出された時はスレッドを中断するようにします
そうでなければ、ブラウザがアプレットを中断してからもスレッドが走りつづけることになります
さっそく、次のサンプルを実行してください
もっとも基本的な、アプレットの流れが理解できるはずです
import java.applet.Applet;
/*<applet code="test.class" width="400" height="400"></applet>*/
public class test extends Applet {
public void init() {
System.out.println("init()ですぅ〜");
}
public void start() {
System.out.println("start()ですぅ〜");
}
public void stop() {
System.out.println("stop()ですぅ〜");
}
public void destroy() {
System.out.println("destoroy()ですぅ〜");
}
}
このプログラムは、コマンドラインからアプレットビューワを用いて実行してください
appletviewer test.java
この時点では、私たちはまだグラフィカル部分にはいっさい手をつけていません
ウィンドウが表示されるだけのはずですが、コマンドラインに目を向けてください
println()メソッドにより、文字列が表示されているはずです
実行時にinit()とstart()メソッドが実行されますね
さらにアプレットビューワを最小化すると、stop()メソッドが呼び出され
終了するとdestroy()が呼び出されます
私たちはまだ何もしていしませんが、アプレットはけして終わることなく動きつづけます
アプリケーションならば、一連の作業を終えるとプログラムが終了していました
これで、アプレットがスレッド上で動いていることがわかりましたね