私のホームページへ - 前の授業へ - 次の授業へ

情報処理IIIA(Javaプログラミング入門)第2回

目次
  1. アプレットの動かし方
  2. グラフィックスの描画
  3. ホームページへの埋め込み
  4. 演習2
  5. レポート課題

アプレットの動かし方

全体の手順

アプレットとは、ホームページの中で動くJavaプログラムのことです。 Javaが急速に普及した理由の一つに、アプレットを使うと高機能のホームページが作成できることがあげられます。 なお、アプレットでないJavaプログラムは、スタンドアローン・アプリケーションとよばれます。

アプレットを動かすまでには、次のような手順をふみます。

  1. エディタ(xemacsなど)を使ってプログラムを入力し、ファイルに保存します。
  2. Javaコンパイラ(javac)を使って、プログラムからバイトコードを生成します。
  3. エディタを使ってタグを入力し、ファイルに保存します。
  4. アプレット・ビューア(appletviewer)を使って、アプレットを表示します。

今回の授業でも、プログラムの中身はあまり気にせず、この手順を理解する演習を行います。

アプレットの例

まず、xemacsなどのエディタを起動して、次のプログラムを入力してください。 そして、前回作成した、この授業用のディレクトリ(java)の中に、ファイル名を BlackBox.java として保存してください。 ファイル名は、プログラム中の class の右にある名前(4行目).java としなくてはいけません。

 1: import java.applet.*;
 2: import java.awt.*;
 3: 
 4: public class BlackBox extends Applet {
 5:    public void paint(Graphics g) {
 6:       g.setColor(Color.black);
 7:       g.fillRect(50, 50, 100, 100);
 8:    }
 9: }

次に、端末エミュレータを起動し、javacコマンドを使ってこのプログラムをコンパイルしてください。 ここまでの操作は、前回と同じです。

b00a001@Ampere:~% cd java
b00a001@Ampere:~/java% ls
BlackBox.java
b00a001@Ampere:~/java% javac BlackBox.java
b00a001@Ampere:~/java% ls
BlackBox.class   BlackBox.java
b00a001@Ampere:~/java%

続いて、エディタを使って、次のタグを入力してください。 そして、この授業用のディレクトリの中に、ファイル名を BlackBox.html として保存してください。 これは、ホームページの作成に用いた言語HTMLの一部で、バイトコードのファイル名とアプレットの大きさを指定しています。

<applet code="BlackBox.class" width="300" height="200">
</applet>

端末エミュレータに戻り、appletviewerコマンドでこのHTMLファイルを表示してください。 ファイル名が BlackBox.html なので、appletviewer BlackBox.html & と入力します。

b00a001@Ampere:~/java% ls
BlackBox.class   BlackBox.html    BlackBox.java
b00a001@Ampere:~/java% appletviewer BlackBox.html &
b00a001@Ampere:~/java%

次のようなウィンドウが開いたら成功です。 実は、このアプレットは、黒い正方形を描画するものでした。 なお、このウィンドウを閉じるには、AppletメニューのQuitを選択してください。

Applet Viewer: BlackBox
Applet
A black box
Applet started.
図2.1 アプレットビューアのイメージ

もしうまくいかないようでしたら、ファイル BlackBox.html が正しく書けているか、BlackBox.class が作られているか、BlackBox.java が正しく書けているかを確認してください。 アプレット・ビューアでファイルを再読み込みするには、AppletメニューのReloadを選択してください。


グラフィックスの描画

単に絵を描くだけでしたら、xpaintなどのお絵描きソフトを使ったほうが簡単です。 Javaを使って絵を描く利点の一つに、プログラムの計算結果をグラフィカルに表せることがあげられます。 今日は、絵を描くことを通じて、少しずつプログラミングになれることにします。

ここで、上記のプログラムの一部について説明します。

 1: import java.applet.*;
 2: import java.awt.*;
 3: 
 4: public class BlackBox extends Applet {
 5:    public void paint(Graphics g) {
 6:       g.setColor(Color.black);
 7:       g.fillRect(50, 50, 100, 100);
 8:    }
 9: }

6行目は、これから黒で描画せよという意味です。 色を切り替えるには、g.setColor(color); と書きます。 color の部分には、次のようなものが書けます。

Color.black, Color.blue, Color.cyan, Color.darkGray, Color.gray, Color.green, Color.lightGray, Color.magenda, Color.orange, Color.pink, Color.red, Color.white, Color.yellow

7行目は、左上が座標 (50, 50) であり、幅が100ピクセル、高さが100ピクセルである長方形(正方形)を塗りつぶせという意味です。 ここで注意が必要なのは、座標系が普通の数学と異なり、左上が原点で、y軸が下を向いていることです。

Coordinates of some points
図2.2 いくつかの点の座標

長方形だけでなく、楕円(円)や直線も描けます。 以下の例を見て理解してください。

g.drawLine(10, 20, 60, 120);
点 (10, 20) から (60, 120) に直線を引きます。
g.drawRect(10, 20, 60, 120);
左上が (10, 20) であり、幅が60ピクセル、高さが120ピクセルである長方形を書きます。
g.fillRect(10, 20, 60, 120);
上記の長方形を塗りつぶします。
g.drawOval(10, 20, 60, 120);
上記の長方形に内接する楕円を書きます。
g.fillOval(10, 20, 60, 120);
上記の長方形に内接する楕円を塗りつぶします。

これらを用いたプログラムの例を示します。 新しいファイルにプログラムを保存しますので、class の右の名前は変えますが、他の部分はそのままです。

RectAndOval.java
 1: import java.applet.*;
 2: import java.awt.*;
 3: 
 4: public class RectAndOval extends Applet {
 5:    public void paint(Graphics g) {
 6:       g.setColor(Color.white);
 7:       g.fillRect(20, 10, 260, 180);
 8:       g.setColor(Color.blue);
 9:       g.drawRect(30, 50, 80, 40);
10:       g.setColor(Color.black);
11:       g.drawOval(30, 50, 80, 40);
12:       g.drawLine(120, 20, 120, 180);
13:       g.drawLine(270, 20, 30, 180);
14:       g.fillRect(180, 90, 80, 80);
15:       g.setColor(Color.yellow);
16:       g.fillOval(180, 90, 80, 80);
17:    }
18: }
RectAndOval.html
<applet code="RectAndOval.class" width="300" height="200">
</applet>
Rectangles and ovals
図2.3 長方形と楕円

ここで、プログラムの順番には意味があることに注意してください。 黄色い円の後に黒い正方形を描くと、円が見えなくなってしまいます。


ホームページへの埋め込み

アプレットの埋め込み

アプレットとは、ホームページの中で動くJavaプログラムだと説明しました。 どのようにしてホームページに埋め込むのでしょうか。 実は、アプレット・ビューアで表示してきたHTMLファイルを、WWWブラウザで開けばよいのです。 Netscapeを起動し、ローカル・ファイル BlackBox.html を開いてください。 (「場所」入力欄に file:/home/b00a/b00a001/java/BlackBox.html などと入力しても開けます。)

Netscape:
File Edit View Go Window Help
A black box


Applet BlackBox running
図2.4 ブラウザのイメージ

ブラウザの背景色とアプレットの背景色が一緒なので分かりにくいのですが、アプレットが埋め込まれたホームページが表示されています。

アプレットだけのページでは、埋め込んだような気がしません。 ファイル BlackBox.html を編集して、他のタグも書きましょう。 確かにアプレットが埋め込まれています。

BlackBox.html
<html>
<head>
<title>Drawing</title>
</head>
<body style="background-color: white">
<h1>お絵描き</h1>
<p>黒い正方形を描きました。</p>
<div style="text-align: center">
  <applet code="BlackBox.class" width="300" height="200">
  </applet>
</div>
<p>みんな見てください。</p>
</body>
</html>
Netscape: Drawing
File Edit View Go Window Help
お絵描き

黒い正方形を描きました。

A black box

みんな見てください。


Applet BlackBox running
図2.5 ホームページのイメージ

ブラウザは、アプレットを画像のように取り扱います。 すなわち、一つの(大きな)文字と見なしますので、前後の文と独立させたければ、<div></div> などで囲んでください。

なお、<h1> など色々なタグが入ったHTMLファイルをアプレット・ビューアで開いても、今まで通りアプレットのみが表示されます。 アプレット・ビューアは、<applet> などごく少数のタグ以外はすべて無視します。

applet タグの属性

ここで、<applet> タグの属性についてまとめます。

code="filename"(必須)
実行したいアプレットのファイル名(〜.class)を指定します。 ここにはパス名やURL/URIは書けません。
width="pixel"(必須)
アプレットの幅をピクセルで指定します。
height="pixel"(必須)
アプレットの高さをピクセルで指定します。
codebase="uri"
アプレットのあるディレクトリをURIで指定します。 省略しますと、HTMLファイルのあるディレクトリが指定されます。

注意1. 自分で作ったアプレットを公開するためには、ファイル(〜.class)をディレクトリ WWW の中にコピーする必要があります。

注意2. codebase 属性にはURL/URIが指定できますので、公開されている他人のアプレットを自分のホームページに埋め込むことができます。 ただし、画像と同様に、著作権には十分配慮してください。


演習2

例を参考にして、今日説明したことを使って、ある程度複雑なグラフィックスを描画するアプレットを作成してください。 ファイル名の約束(class の右の名前 .java)を忘れないようにしてください。

IOC logo
図2.6 グラフィックスの例(IOCのロゴ)

レポート課題

今日の演習2にしたがってJavaプログラムを作成し、konishi@twcu.ac.jpあてにメールでそのプログラムを提出してください。 xemacsの「ファイル挿入」機能を使って、ファイル(〜.java)の内容をメールに追加するとよいでしょう。 メールには、学生番号、氏名、科目名、授業の日付けを明記してください。


私のホームページへ - 前の授業へ - 次の授業へ

このページの複製は、東京女子大学学内に限り許可します。 このページへのリンクを許可します。
2000年10月16日更新
製作・著作:小西善二郎<konishi@twcu.ac.jp>