Life Time (2)

last modified: Jan./29th/2002

前節で紹介した4つのライフタイムメソッドを実装した例を挙げます。 appletviewer で実行することを想定したアプレットです。細かい規則は無視して、ここでは四つのメソッドが自動的に実行されることを確認してください。

Lifetime.java:

import java.applet.Applet;

public class Lifetime extends Applet{

	//プレットの初期化
	public void init(){
		System.out.println("init()");
		System.out.println("アプレット開始");
	}

	//アプレットの開始
	public void start(){
		System.out.println("start()");
		System.out.println("アプレット再開");
	}

	//アプレットの一時停止
	public void stop(){
		System.out.println("stop()");
		System.out.println("アプレット停止");
	}

	//アプレットの終了
	public void destroy(){
		System.out.println("start()");
		System.out.println("アプレット終了");
	}
}

ライフタイムに応じて対応するメソッドが自動的に実行されるので、標準出力であるコマンドラインにメッセージが出力されるはずです。

lifetime.html の一部分:

<p><applet code="Lifetime.class" width="100" height="50">
アプレットが実行できない場合の代替内容。
</applet></p>

HTML 文書の全体例は、「Including an applet」を参照ください。

コンパイルと実行

このサンプルは、アプレットのライフタイムに応じて、標準出力にメッセージを出力します。最初にコンパイルして、適切な HTML 文書を appletviewer によって実行しましょう:

C:\Java>javac Lifetime.java

C:\Java>appletviewer lifetime.html

public void init() メソッド

アプレットは起動すると、まず public void init() メソッドが実行されます。このメソッドは Applet クラスで実装されており、必要に応じてオーバーライドすることで当該アプレットの初期化の役割を果たします。

続いて、自動的に public void start() メソッドが実行されます。

アプレットの実行時の画面
図:アプレット実行時の画面

public void stop() メソッド

アプレットが最小化(アイコン化)、非アクティブ化、当該ウェブページから他のページへ移動するなどすると、自動的に public void stop() メソッドが実行され、アプレットはメモリ上に残りながら一時停止します。

stop()
アプレット停止

public void start() メソッド

再びアプレットがアクティブ化すれば、自動的に public void start() メソッドが実行されて、アプレットの実行が再開されます。

start()
アプレット再開

public void destroy() メソッド

アプレットが実行されている状態で、終了したりブラウザが閉じたりすれば、自動的に public void stop() メソッドが実行されて一時停止し、続いてこれも自動的に public void destroy() メソッドが実行されてアプレットが占有していたメモリは完全に解放されます。

stop()
アプレット停止
destroy()
アプレット終了
C:\Java>

ライフタイムの制御方法

ここでは自動的に実行される4つのライフタイム・メソッドを実装しました。これらは Applet クラスで実装されたものをオーバーライドしたものです。

必ずしも全てのメソッドをオーバーライドする必要はなく、目的に応じて必要な分だけオーバーライドすればいい事になっています。



Copyright © 2001 SUGAI, Manabu. All Rights Reserved.