190 likes | 396 Views
アプレット ( Applet) について. 社会工学実習(社会経済)のゲーム画面 ( Gyerik Janos 君のプログラム). Applet とは?. ブラウザ( Internet Explorer など)で動作する Java のプログラム WWW サーバ から WWW クライアントに クラスファイルをダウンロードして実行. WWW サーバ. インターネット. HTML ドキュメント. Java クラスファイル. WWW クライアント. 目的の一つ : 静的コンテンツからの脱出. HTML による WEB コンテンツ
E N D
社会工学実習(社会経済)のゲーム画面 (Gyerik Janos君のプログラム)
Appletとは? • ブラウザ(Internet Explorerなど)で動作する Javaのプログラム • WWWサーバ から WWWクライアントに クラスファイルをダウンロードして実行 WWWサーバ インターネット HTMLドキュメント Java クラスファイル WWWクライアント
目的の一つ:静的コンテンツからの脱出 • HTMLによるWEBコンテンツ • (cf. 1学期の情報リテラシー実習) • 文字、静止画 止まったまま。動きがない。 • クライアントサイドで動く動的なWEBコンテンツ アプレットで可能 • 一時期は非常に注目された(Javaの初期の普及の一因) • 例:ネット上のアプレットをスクリーンで実演・・・ インターネット
Javaの仕組み:復習 • 基本的な仕組み • コンパイル: ソースコード [javacコマンド] バイトコード • バイトコード(classファイル) • 「Java Virtual Machine (仮想マシン)」が入っていれば基本的に動く。 • Windows, Mac, Linux, …
Java アプレットの仕組み • ネットワーク経由でバイトコードがダウンロードされる • WEBブラウザなどに組み込まれたJava バーチャルマシンで実行される。 インターネット
Java アプレットの利点 • 見ず知らずの他人が作ったネット上の プログラムを実行するのは危険。 Javaアプレットはセキュリティがしっかり している。 よって、セキュリティポリシーの制限内であればJavaアプレットでは何でも出来る。 • ゲーム、ワープロ、アニメーション、・・・
アプレットの作成手順 3 STEPS • ソースプログラムの作成 • ***.java ファイルの作成 • コンパイル(バイトコードへの変換) • ***.class の作成 • htmlファイルの作成 • appletviewerでテストをする • テストが終わったら、htmlファイルと classファイルをWEBサイトにアップロード
1 & 2. ソースプログラム • 最低限必要なこと • Appletクラスを継承したクラスを作る(「extends Applet」と書く、と覚えておく) • コンパイルでclassファイルを作成する • javac Test.java Test.class import java.applet.*; public class Test extends Applet{ }
例: 絵を描くプログラムを作ってみよう import java.applet.*; // アプレットを使うため import java.awt.*; // お絵かきをするため public class Test extends Applet{ public void paint(Graphics g){ g.drawLine(100, 100, 200, 200); g.drawLine(100, 200, 200, 100); g.drawOval(300, 100, 100, 100); } } Graphics gはGraphics gcで、g.drawLine()はgc.drawLineで置換えてもよい。drawOvalも同様。
3. HTMLファイルを作成する <html> <head> <title>アプレットのテスト</title> </head> <body> <applet code="Test.class" width="500" height="500"> </applet> </body> </html> • <applet></applet>タグを書く • applet code でclassファイルのファイル名を指定 ここで classファイルがブラウザに呼び出される。 • width, height でウィンドウ幅を指定 • 作成したhtmlファイルは、classファイルと同じ ディレクトリに保存する。
appletviewerでアプレットをテスト コマンド・プロンプトで appletviewer Test.html とタイプして起動する (10ページのアップレット・プログラムは 13ページのように表示される)。 アプレットを終了する。 • 右端上のXをクリック
※WEBサイトにアップロードする • 納得のいくアプレットが出来たら、WEBブラウザでアプレットが表示されることを確認する (netscape, InterneExplorer)。 • WWWブラウザの場合、ソースコードの変更がすぐに反映されないことがあるので注意(appletがキャッシュされてしまうため)。 • class ファイルと htmlファイルを自分のホームページにアップロードする。 • cp Test.html Test.class ~/public_html/
余談 • アプレットの現状 • 当初予想されたほど現在は使われていない。 • WEBコンテンツではMacromediaのFlashなど • 最近のWEBアプリケーションではAjaxなど
アプレットには main メソッドがないJavaVMが自動呼び出しするメソッド • アプレットの読み込み init()が呼ばれる。 • 最初に一度だけ呼び出される。 • アプレットの開始 start()が呼ばれる。 • ユーザが再びページに戻ったときや、ブラウザをアイコン化から元の大きさに戻したときに呼び出される。 • アプレットの実行 paint(Graphics g) など • アプレットの停止 stop()が呼ばれる。 • ユーザがページを離れた時やブラウザがアイコン化された時に呼び出される。 • アプレットの解放 destroy()が呼ばれる。
アプレットのライフサイクル import java.applet.*; // アプレットを使うため import java.awt.*; // お絵かきをするため public class Test extends Applet{ public void paint(Graphics g){ g.drawLine(100, 100, 200, 200); g.drawLine(100, 200, 200, 100); g.drawOval(300, 100, 100, 100); } public void init(){ System.out.println("Initialize"); setSize(500, 300); // サイズ this.setBackground(Color.magenta);//背景色 } public void start(){ System.out.println("Start!"); } public void stop(){ System.out.println("Stop!"); } public void destroy(){ System.out.println("Bye-bye!"); } } • 右のように init, start, stop, destroy メソッドを定義してみよう。 • AppletViewerを最小化したり、元のサイズに戻したりしてみよう。 • 端末に何が表示されるかを確認せよ。