まえがき

本テキストは拙書「例題で学ぶ Java 入門」の姉妹書である。前書はコンソールアプリケーションに絞ったテキストであり，われわれが入門書として最適で社あると思って作成した本である。本書「例題で学ぶ Java アプレット入門」は前書のコンソールアプリケーションを理解したうえで読むのもよいし，また初めからコンソールアプリケーションの知識なしにいきなり読むこともできる。

ロナ

本書を貫く思想は前書「例題で学ぶ Java 入門」と同じである。すなわち，「プログラミングに王道なし」といわれ，どんな教え方をしても学生本人のモチベーションがなければ，プログラミングのスキルを修得することはできない。ここで，重要な要素はプログラミングを学習する学生が興味やおもしろさを継続して感じ，学習への意欲を保持できるか否かにある。しかしながら，学コ

生の Java 学習へのモチベーションを保つだけではなく，さらにより興味を湧き立たせる例題や課題を用意することは難しい。従来，学生のモチベーションを保つさまざまな課題が提案されてきたが，従来の課題はおもしろく興味はあるがやや難しすぎる傾向があった。
Java アプレット自体はグラフィカルなインタフェースを持つのでビジュア
ル的にも美しく楽しい課題を作ることができるが，従来ありきたりの図形や画像表示など，あまり工夫をこらした良質な課題は少なかった。また，従来のアプレットの例題や課題は数学系に偏り，数学が苦手な学生，特に文科系の学生にはハードルが高かった。本書では，アプレットの利点を最大限に生かして，図形処理，画像処理，音楽処理を基本に据え，学生の興味を引きそうな例題や課題を多く開発し，学生のモチベーションを保ちながら Java アプレットの基

ii

まえがき礎を習得することを目的とする。本書で開発した例題と課題は，どのようにして学生の興味を引くかという観点から次の四つのカテゴリに分かれる。
（ 1 ）身近な話題を含む課題

学生が思わず引き込まれていくような，学生に密接な関係のある大学や地域の話題を課題の中に取り入れる。
（ 2 ）季節感のある課題

クリスマスなどの講義の開講時期に合わせた課題により学生の興味を引く。
（ 3 ）ゲーム風プログラムの課題

現在の学生の大半が興味を引くゲー

ムそのものまたはゲームの一部を体験させる。
（ 4 ）アニメーションや音楽などを含む課題

今はやりで学生に人気の社ある楽曲を課題の中に登場させる。

本書は以下の 7 章から構成される。1 章では，Java アプレットの概要を述べる。アプレットの歴史や特徴を解説し，最後にアプレットを使ったプログラム

ロナ開発の流れを説明する。2 章では，アプレットを学ぶために必要な Java の仕組みとして，API やクラス，オブジェクト，メソッドについて述べる。3 章では，アプレットによるプログラミングの基礎である図形の描画プログラムについて述べる。文字の描画，四角形と円の描画，直線を使ったさまざまな図形の描画について述べる。4 章は，おもしろい課題の多い画像の表示プログラムにコついて述べる。よりアプリケーションを楽しくするための switch 文と乱数について述べた後，静止画の表示，静止画を用いたアニメーションについて述べる。5 章では，より実用的なアプリケーションを実現するためにイベント処理について述べる。おもにマウス操作による画像の移動，図形の描画を述べ，最後にキーイベント処理について述べる。6 章では，さまざまなコンポーネントとそのイベント処理について述べる。ボタンとチェックボックス，レイアウトとテキストフィールドについて，そのイベント処理を中心に述べる。7 章では，アプリケーションをより楽しく実用的にする，音楽・音声処理について述べる。ボタン等のイベント処理と組み合わせて複数の楽曲を演奏するアプリ
ケーションについて述べる。
本書は大学等の講義においても使用できるように，それぞれの章において例まえがきiii

題となるプログラムと課題を用意している。例題のプログラムは実際に入力し，実行してみることでプログラムの流れを確認することができる。課題はプログラムを作成するものであるが，解答例を Web ページからダウンロードすることができ，自分で作成したプログラムと比較し学習することができる（詳細は p.61 参照）。
難しいと思われている Java アプレットは，もしモチベーションが下がればさらに難しいものとなる。本書はモチベーションを保つ試みの 1 つとして学生が興味をもちそうな例題と課題を作成した。ぜひ，本書を読んで 1 人でも多くプログラミングが好きな学生が現れることを願ってまえがきとする。

社

最後に，われわれをいつも陰からサポートしてくれている妻の大堀真保子と木下倫子，両親の早坂政彦・祐子に最大の感謝の意を表したい。彼ら・彼女らの支えがなければこのテキストが完成することはできなかっただろう。そしロ
ナて，本書の企画から完成まで，さまざまな面でご助力いただいたコロナ社の皆様に，改めて感謝申し上げる。

著者を代表してコ2013 年 7 月

1 章，2 章，5 章，6 章

木下正博

3 章，4 章，7 章

大堀隆文

演習課題

早坂亮佑

大堀隆文

目

1.

次

Java アプレットの概要

Java アプレット

1

1.2

Java アプレットプログラム

2

1.3

Eclipse Pleiades のインストール

1.4

Eclipse による簡単なプログラミング

ロ
ナ

社

1.1

2.

4
7

Java の 仕 組 み

2.1

アプレットと Java API パッケージ

13

2.2

ユーザクラスとスーパクラス

15

2.2.1

ユーザクラスのメソッドの変更と定義

16

オブジェクト，クラス，メソッド

17

2.4

アプレットの動作

19

2.5

ま19

コ

2.3とめ

3.

描 画 の 基 礎

3.1文 字 の 描 画

20

3.2

四角形の描画27

3.3

円と円弧の描画

32

3.4

四角形と楕円の描画サンプルプログラム

36

3.5

直線の描画の基礎

39

3.6

直線の描画の応用

44

目と次v

3.7

まめ

51

3.8

プログラム演習

51

4.
4.1

画 像 の 表 示

switch 文と乱数メソッド

62

4.1.1

switch 文

63

4.1.2

乱数メソッド65

4.2

画像表示の基礎68

4.3

画像表示の応用

75

4.4

ま82

4.5

プログラム演習め

5.1

イベントドリブン処理

5.1.1

5.2

82

イベント処理ロナ

5.

社とイベント処理の設定

マウスイベント

99
99

102

5.2.1

マウスムーブ102

5.2.2

マウスドラッグ

104

グラフィックスオブジェクト

コ

5.3

5.3.1

5.4

線 画 の 描 画

キーイベント

106
107

111

5.4.1

キ ー の 判 定

111

5.4.2

キーイベントによるイメージの移動

112

5 . 4 . 3 キー修飾定数（同時に押されているキー）getModifies
メソッドと

114

5.5

まめ

117

5.6

プログラム演習118

目vi

次コンポーネント処理

6.
6.1

GUI 部品とイベント処理

131

6.2

ボタンの処理133

6.3

チェックボックス

138

6.4

レイアウトとパネル

141

6.4.1

FlowLayout

141

6.4.2

BoaderLayout

142

6.5

テキストフィールド

142

6.6

スクロールバー

143

6.7

ま148

6.8

プログラム演習

め

音

声処

ロ
ナ

7.

社と148

理

7.1

オーディオクリップ（音楽の再生）

159

7.2

オーディオクリップの応用

160

7.3

まめ

162

7.4

プログラム演習

162

コ

索と引

167

1
Java アプレットの概要
Java アプレットは，Java プログラミング言語のアプリケーションの 1 つである。
本書は初心者が Java アプレットを学ぶとともに，Java プログラミングも同時に学ぶことを目的に書かれている。そのため，イメージや画像を扱うグラフィックス処理社を通じて視覚的に確認しながら，プログラミング技術を習得することが重要である。
また，動作を生成することでプログラミングの楽しさや達成感を味わい，プログラミングに対する一層の興味を持つことが大事である。

ロナ

Java アプレットは，グラフィックス機能に特化したものではないが，簡単に直線や円などを描画し，写真やイメージデータを同時に表示することができる。特に統合開発環境である Eclipse の環境下では，アプレットビューアによって容易に表示結果を得ることができる。本章では，Java アプレットの概要を説明し，Java アプレッ

コトを使ったプログラム開発について簡単に説明する。

1.1

Java アプレット

Java アプレットは HTML（hyper text markup language）から呼び出されて実行される Java プログラムである。Java は 1995 年に，Sun Microsystems 社が開発・発表したプログラミング言語であり，オブジェクト指向言語の 1 つである。ネットワーク，インターネットに関係するオブジェクトクラスが多数用意されており，ブラウザのための HTML から簡単に呼び出して実行できるため，インターネットの発展とともに急激に注目を集めてきた。
ブラウザはホームページを表示させるために，HTML によって文章や図形の表示を決定する。しかし，HTML の機能だけでは動的なグラフィックス処理などを行うことが難しい場合がある。そこで Java を使用することにより，

1.

2Java アプレットの概要

HTML ではできないさまざまな処理を行う。Java および Java アプレットでできる処理の中でも，本書では①グラフィックスの描画，② Math オブジェクトによる算術演算，③マウスイベント，キーイベントなどのイベント処理，④ボタン，テキストフィールド，チェックボックス，スクロールバーなどの GUI部品の利用，⑤マルチスレッドによるイメージのスクロールやアニメーション，⑥サウンドなどのマルチメディアに焦点をあて説明していく。

1.2

Java アプレットプログラム

社

Java アプレットは，HTML から呼び出すことのできるアプリケーションであるので，Java のプログラムを HTML と同じ場所，例えばサーバ内の特定のディレクトリに置いておけば，いつでも実行させホームページに表示させるこロナとができる。また，1 . 3 節で説明する統合開発環境では HTML の中に記述せずに，直接アプレットビューアという仕組みによって表示させることができる。
いい換えると，システムの開発段階ではアプレットビューアによって確認し，完成した後にプログラムを HTML から呼び出すように設定する開発手段をとることができる。

コ

アプレットの領域を四角形で示し，その中に “Welcome Java Applet!!” と表示させる Java アプレットプログラムを作成，HTML から呼び出す例を考える。
HTML の名前を Sample00.html として次のように記述する。
<HTML><HEAD><TITLE>Welcome Java Applet!!</TITLE></HEAD><BODY><HR><H1> アプレット Sample00</H1><APPLET CODE=Sample00.class WIDTH=”300” HEIGHT=”100”></APPLET>

1.2

Java アプレットプログラム

3<HR></BODY></HTML>① HTML からアプレットを呼び出すためには <APPLET CODE…>…
</APPLET> タグを使用する。
② CODE アトリビュートに呼び出すアプレット名を指定する。
こ の 場 合，Sample00.java を コ ン パ イ ル し て 作 成 さ れ た Sample00.
class を指定している。
③ WIDTH アトリビュート，HEIGHT アトリビュートにより，アプレットが使社用する領域のサイズをピクセル値で指定する。
また，Java プログラムを Sample00.java という名前で次のように記述する。
import java.applet.Applet;

ロナ

import java.awt.Graphics;

public class Sample00 extends Applet {public void paint(Graphics g){g.drawString(“Welcome Java Applet!!”,50,20);
g.drawRect(0,0,299,99);}}

コ① import java.applet.Applet;
import java.awt.Graphics;

Applet クラス，Graphics クラスをロードする。
② public class Sample00 extends Applet {アプレットを使うクラス Sample00 を宣言する。
③ public void paint(Graphics g){paint メソッドを宣言。Graphics オブジェクトを g とする。
④ g.drawString(“Welcome Java Applet!!”,50,20);g.drawRect(0,0,299,99);
文字列 “Welcome Java Applet!!” を座標（50, 20）に描画する。横幅 299 縦 99

41.

Java アプレットの概要の四角形を描画する。
ここで，Graphics クラスの引数として g を用いているが，例えば gg のように他の引数を用いてもよい。アプレットの領域は HTML の WIDTH，HEIGHTで指定され，この領域からはみ出した部分は表示されない。上の HTML を起動 し た と き の ブ ラ ウ ザ の 表 示 結 果 を 図 1 . 1 に 示 す。 文 字 列 “ ア プ レ ッ ト
Sample00” は HTML による表示で，四角で囲まれた部分がアプレットによる表ロ
ナ社

示となる。

図 1 .1 HTML によるアプレットの表示

図 1.2

アプレットビューアによるアプレットの表示

しかし，本書では統合開発環境 Eclipse を用いて学習していくので，明示的にブラウザ，HTML を扱わずにアプレットビューアという仕組みを用いてプログラムの実行結果を確認する。図 1 . 2 に Sample00 のアプレットビューアによコる表示結果を示す。これは，Eclipse の画面で「実行」→「Java アプレット」をプルダウンメニューから選択するとアプレットビューアが起動する。ただし，初期画面の大きさはデフォルトで決められているので，画面の右下をドラッグして広げる必要がある。

1.3

Eclipse Pleiades のインストール

Eclipse で Java プログラムを開発するには，事前に Java そのものをインストールする必要があり，Eclipse で Java を使えるようにしておかなければならない。Java の本体である Java JDK は Sun Microsystems 社が無償で提供してお1.3

Eclipse Pleiades のインストール

5り，Java の開発，実行環境を提供する Java プラットフォームで，コンパイラ，デバッガ，クラスライブラリ，実行環境などが含まれる。
そこで，JDK と Eclipse を同時にインストールする方法が提供されている。
Pleiades という日本語のプラグインを提供している MergeDoc Project のサイトから，すでに日本語プラグインを実装している Eclipse を入手することができる。これを日本語 Eclipse/Pleiades All in One 日本語ディストリビューションという。サイト（http://mergedoc.sourceforge.jp/）からダウンロードする

ロナ

社ことが可能である（図 1 . 3）
。

図 1.3

Pleiades-Eclipse のトップページ

この Pleiades All in One は開発対象となるプログラミング言語別にパッケージングした Eclipse 本体と便利なプラグインのセットで，ダウンロードしたコ

zip フ ァ イ ル を 解 凍 し，eclipse.exe を 起 動 す れ ば， す ぐ に 日 本 語 化 さ れ た
Eclipse を利用できる。なお Pleiades All in One の対象 OS は Windows のみとなっているので注意が必要である。最新のものは，Eclipse Indigo Pleiades Allin One であるので，その zip ファイル（圧縮ファイル）をダウンロード，展開しフォルダごと任意のディスク領域に置く。このフォルダの中の Eclipse 実行
ファイルを起動すると日本語化された Eclipse を使用することができる。なお，
すでにインストール済みの Eclipse に Pleiades のプラグインを追加する方法については上記サイトから参照することができる。
具体的なインストールは以下の手順で行う。
①ダウンロード

トップページで「Eclipse3.7 Indigo Pleiades All in One」のアイコンをクリックする。図 1 . 4 のような画面に移動するので，Java の部

1.

6Java アプレットの概要

図 1.5

図 1.4

pleiades フ ォ ル ダの内容Pleiades-Java のダウンロード画面分の「Full All in One（JRE あり）」の「Download」アイコンをクリックし，適当な場所（フォルダ）に保存する。
凍

保存されたファイル（zip 形式）をダブルクリックすると自動解社②解凍を始めるが，デフォルトでは c:¥pleiades というフォルダに解凍されるので， 変 更 す る 場 合 は 新 た に 指 定 す る。 解 凍 が 終 了 す る と C ド ラ イ ブ に③ Eclipse 起動ロナ

pleiades というフォルダができあがるので確認する（図 1 . 5）。
Eclipse のフォルダを開くと図 1 . 6 のようなファイルが確認できるので Eclipse のアイコンをダブルクリックする。Eclipse が起動さコれ起動画面（図 1 . 7）が表示される。

図 1.6

Eclipse フォ
ルダの内容

図 1.7

④ワークスペース（workspace）の選択

Eclipse3.7 Indigo Pleiades
All in One の起動画面

プログラムソースファイルなどのプロジェクトの保存場所を指定するために，ワークスペースフォルダを作成する。デフォルトでは eclipse 実行ファイルと同じフォルダ内に workspace

1.4

Eclipse による簡単なプログラミング

図 1.8

7

ワークスペースの選択というフォルダが作成される。別の場所に保存したい場合には，画面内で指定する（図 1 . 8）。
⑤ Eclipse 初期画面

Eclipse が正常に起動されると，プルダウンメニューなどが日本語化された統合開発環境の画面が表示される。今後の Java プロ

図 1.9

Eclipse-Pleiades の初期画面

コロ
ナ

社

グラミングはすべてこの画面を用いて行う（図 1 . 9）。

この Eclipse-Pleiades ウィンドウのことをワークベンチウィンドウと呼ぶ。
中央の部分がエディタと呼ばれる領域で，ここにプログラムコードを入力していく。一般的な Java アプリケーションプログラムの実行結果は，下の部分のビューというところに表示される。Java アプレットプログラムの実行結果はアプレットビューアによって表示される。

1.4

Eclipse による簡単なプログラミング

Eclipse と Pleiades のインストールが完了したところで，Eclipse による簡単索引

テキストフィールド 2, 142
統合開発環境4
アダプタークラス名
101 ドラッグ
104
アプレットビューア
2
【は行】
イベント
99
イベントクラス名
20
101 パネル
イベント処理18
99 引 数
イベントドリブン8
99 プロジェクト
イベントリスナー
2, 20, 133
100 ボタンイベントリスナークラス名【ま行】
101
インタフェース
2, 10215 マウスイベント
オーディオクリップ
159 マウスムーブイベント 100
オブジェクト指向言語
2
1 マルチスレッド

drawOval メソッド
32
drawPolygon メソッド
45
drawRect メソッド
27
drawRoundRect メソッド 27
drawString メソッド
25
Eclipse4
fillArc メソッド
34
fillOval メソッド
34
fillRect メソッド
29
fillRoundRect メソッド
29
FlowLayout
141getDocumentBase メソッド
69
getImage メソッド
68
getModifiers メソッド
114
getSource メソッド
136
100
getX メソッド
getY メソッド
100
GridBagLayout
141
GridLayout
141
GUI 部品2, 131HTML
1
Image クラス
68
import 文
13
Java
1
Java アプレット
1
keyPressed メソッド
111
Math オブジェクト
2
mouseDragged104
mouseMoved メソッド 100mousePressed
104
Pleiades5
setBackgroundColor メソッド
23
setFont メソッド
26
Sun Microsystems 社
1switch 文
62

ロナ社

【あ行】

【か行】

【や行・ら行】

コ

仮引数
18
キーイベント2, 111
疑似乱数
62
キャスト（型変換）
66
極座標系
46
クラス
9
グラフィックスオブジェクト
107
ゲーテ座標系
46
コンポーネント
20【さ行】
サウンドデータ
サブクラス
実引数
条件分岐文
スクロールバーステータス行
スーパクラス

159
1518622, 143110
15【た行】
チェックボックス 2, 20, 138

ユーザクラス
ラジアン
ラジオボタン
乱数メソッド
リスナーオブジェクト
レイアウト

15
46
138
62
99
141

【英語】

actionPerformed メソッド
135
API
13
AudioClip クラス
159
awt
14
BorderLayout
141
break 文63
CardLayout
141case 文64
ComponentEvent
115
default 文
63
drawArc メソッド
33
drawImage メソッド
69
drawLine メソッド39── 著 者 略 歴 ──1973 年
1975 年
1978 年

1978 年
1981 年
1993 年

隆文（おおほりたかふみ）

北海道大学工学部電気工学科卒業
北海道大学大学院工学研究科修士課程修了（電気工学専攻）
北海道大学大学院工学研究科博士後期課程修了（電気工学専攻）
工学博士
北海道工業大学講師
北海道工業大学助教授
北海道工業大学教授
現在に至る

木下正博（きのしたまさひろ）

早坂亮佑（はやさかりょうすけ）

2003 年
2004 年
2005 年
2010 年

博士（工学）（北海道大学）
北海道工業大学講師
北海道工業大学助教授
北海道工業大学教授
現在に至る

2010 年 北海道工業大学工学部卒業
2012 年 北海道工業大学大学院博士前期課程修了（応用電子工学専攻）
2012 年 北海道工業大学大学院博士後期課程入学
現在に至る

社

大堀

例題で学ぶ Java アプレット入門
Introduction to Java Applet with ExamplesⒸ Takafumi Ohori, Masahiro Kinoshita, Ryosuke Hayasaka 2013

検印省略

初版第 1 刷発行★

ロナ

2013 年 9 月 6 日著

大木早隆
文
正博亮
佑株式会社
コロナ社
代 表 者
牛来真也
萩原印刷株式会社

者

発 行 者

コ

印 刷 所

112 0011

発行所

堀
下坂

東京都文京区千石 4 46 10

コ

株式会社

ロ

ナ

社

CORONA PUBLISHING CO., LTD.
TokyoJapan

振替 00140 8 14844・電話（03）3941 3131（代）ISBN 978 4 339 02473 9（吉原）

Printed in Japan（製本：愛千製本所）

本書のコピー，スキャン，デジタル化等の無断複製・転載は著作権法上での例外を除き禁じられております。購入者以外の第三者による本書の電子データ化及び電子書籍化は，いかなる場合も認めておりません。
落丁・乱丁本はお取替えいたします