• 検索結果がありません。

アプレットをアプリケーションとして動作させる手順

ドキュメント内 progj-text.dvi (ページ 51-57)

第 5 章 総合演習 47

5.3 総合演習とQ&A

5.3.1 アプレットをアプリケーションとして動作させる手順

この授業では,

Web

ページ内で動作させるプログラム

アプレット

を題材に用いま したが,特にファイルへの書き出しが制限されていることが実用プログラムとしてのネッ クとなります。このため,より実用的なプログラムとするためには,独立して動作するア プリケーションの骨格も知っておく必要があります。

Javaアプリケーションの要件

GUI

を使わない場合も,使う場合も,

Java

プログラムの中には,

main

というメソッド が必要となります。最も小さなプログラム

(GUI

を用いない場合

)

は,たとえば,次のよ うなものです。

public class myApp1 {

static public void main(String[] args) {

System.out.println("*** This is a smallest Java application ***") ; }

}

クラスは,アプレットの場合と同じく,

public

属性を持つことが必要で,規約にした がって,このソースプログラムは

myApp1.java

という名前でなければなりません。また,

main

メソッドは,必ず上記のように,

static

で,なおかつ,

public

属性を持たせてお きます。

コンパイルは

javac

コマンドを用いて行ない,

java

コマンドにクラス名を添えて実行 させます(ただし

.class

は省く)。たとえば,

Z:¥jsamples> notepad "myApp1.java" 新規に作成(Aは大文字で) Z:¥jsamples> javac myApp1.java コンパイル

Z:¥jsamples> java myApp1 仮想マシンで実行

*** This is a smallest Java application *** 実行結果 Z:¥jsamples>

また,

GUI

を使用する場合は,アプレットではブラウザが行なっていた仕事,つまり,

ウィンドウを初期化する仕事が必要となります。

Java

では,ウィンドウを生成するための

Window

クラスが準備されており,ここから派生させた

Frame

クラス(または

JFrame

ク ラス)を用いて利用します。

import java.awt.* ; import java.awt.event.* ; public class myApp2 {

static public void main(String[] args) {

// フレーム(ウィンドウ)の生成とタイトルの設定

Frame myFrame = new Frame("** My Application using GUI **") ; myFrame.setSize(400,400) ; // ウィンドウの大きさの設定

myFrame.setVisible(true) ; // 可視状態に設定 myFrame.addWindowListener( // 終了時の処理を登録

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0) ; // ウィンドウを閉じる際にアプリケーションも終了 }

} ) ; } }

これも,クラス名とソースプログラム名を一致させるという規約に従い,ソースプログ ラム名は

myApp2.java

でなければなりません。コンパイルの手順,実行の手順は

myApp1

の場合と同じです。実行結果は,ウィンドウとなって表示されます(が,中身は何もない ので空のウィンドウが表示されるだけです)。

既存のアプレットのアプリケーション化

既存のアプレットがある場合は,それをほぼそのまま利用してアプリケーション化すること も可能です。たとえば,

sample01.java

をアプリケーション化するためには,

run01.java

を次のように作成します。

import java.awt.* ; import java.awt.event.* ; public class run01 {

static public void main(String[] args) {

// フレーム(ウィンドウ)の生成とタイトルの設定

Frame myFrame = new Frame("** Running an applet as an application **") ; // アプレットの生成

sample01 myApplet = new sample01() ;

myFrame.setSize(520,450) ; // ウィンドウの大きさの設定 myFrame.add(myApplet) ; // アプレットをフレーム内に追加

myApplet.init() ; // アプレットを初期化

myFrame.setVisible(true) ; // 可視状態に設定

myApplet.start() ; // アプレットの動作を開始

5.3.

総合演習とQ&A

53

// 終了時の処理を登録

myFrame.addWindowListener(

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0) ; // ウィンドウを閉じる際にアプリケーションも終了 }

} ) ; } }

このソースプログラムの中に

sample01

の実体が定義されていませんが,同じフォルダ

内に

sample01.java

があると,コンパイル時に自動的にその内容が参照され,必要なら

コンパイルも同時に行なわれるので,わざわざ実体を定義し直す(

run01.java

の中に組 み込む)必要はありません。

実行は,

java run01

とすることで,アプレット

sample01

がウィンドウ内に組み込ま れて表示されて実行されます。

II

プログラム例と演習問題

57

6 章 プログラム例

以下のプログラムは,私の本務校である横浜市立大学のホームページにあらかじめ登録 してあります。インターネットエクスプローラを使って手元のパソコンにコピーした上で 利用してください。

6.1 第1日で使用するプログラム

ドキュメント内 progj-text.dvi (ページ 51-57)