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