上のようなJava言語で作った部品のことをアプレット(applet)といいます(小さなアプリケーションソフトという意味でしょうね)。
上のアプレットを作ってみましょう。
エディタ(メモ帳など)を起動して,次のように打ち込んでください。
ただし //
から行末までは注釈(説明)ですので,打ち込まなくてもかまいません。
import java.awt.*; // ウィンドウ関連ツール(Abstract Window Toolkit)を使う import java.applet.Applet; // Appletを使う import java.util.Random; // 乱数を使う public class Circles extends Applet { // アプレットの名前は Circles にする public void paint(Graphics g) { // 描画手順は以下の通り Random a = new Random(); // 新しい乱数列 a を用意する for (int i = 0; i < 100; i++) { // 0 から 99 までループ g.setColor(new Color(a.nextInt())); // 整数の乱数を発生し,それで色を決める int x = a.nextInt(300); // 整数の変数 x に0以上300未満の整数の乱数を代入する int y = a.nextInt(100); // 上と同様 int r = a.nextInt(40) + 10; // 上と同様 g.fillOval(x - r, y - r, 2 * r, 2 * r); // 中心 (x,y),半径 r の円板を描く } } }
これを Circles.java
というファイル名で保存します。
保存時の文字コード(エンコーディング)は,Windows なら(もし指定ができるなら)ANSI(実際はShift JISをマイクロソフトが拡張したMS932)とします。MacならShift JIS,LinuxやSolarisならEUC-JPでいいでしょう。
今は大丈夫だと思いますが,もしかしたら Windows の「メモ帳」で Circles.java
という名前で保存しようとすると,Circles.java.txt
という名前にされてしまうことがあるかもしれません。
ファイル名の欄に "Circles.java"
のように引用符付きで書けばいいかもしれません。
コマンドを入力する窓(新しいWindowsなら「コマンドプロンプト」,古いWindowsなら「MS-DOSプロンプト」,Mac OS Xなら「ターミナル」)で次のように打ち込んでください。
javac Circles.java
すると,Circles.class
というファイルができます。
この手続きを「コンパイル」といいます。
また,javac
という命令で起動するソフトのことを「Javaコンパイラ」といいます。
この Circles.class
と同じ場所に
<applet code="Circles.class" width="300" height="100"> </applet>
と書いたファイルを作ります。
このファイル名は何でもかまいませんが,例えば test.html
としておきます。
次に,コマンドを入力する窓から,
appletviewer test.html
と打ち込みます。 ランダムな円がたくさん出力されれば OK です。
アプレットビューア初回起動時に「警告: AppletViewer プロパティファイルが読み込まれません: C:\Documents and Settings\hogehoge\.hotjava\properties デフォルトを使用します。」などと言ってきますが,これは正常です。
古いWindowsのMS-DOSプロンプトからアプレットビューアを起動しようとすると
This program cannot be run in DOS mode.
というエラーメッセージが出る場合は,MS-DOSプロンプトの [プロパティ]−[プログラム]−[詳細設定] で,「MS-DOSプログラムにWindowsを検出させない」のチェックボックスをオフにしてください。
さらに,この test.html
というファイルをWebブラウザで開くと,ブラウザの窓に出力されるはずです。
ご自分のWebサイトを持っているかたは,この test.html
に書き込んだのと同じ内容をご自分のWebページのどこかに書き込んでおき,それと同じフォルダに Circles.class
を置いておけば,そのページを見た人のブラウザにランダムな円が出力されます。
Circles.class
はバイナリファイルですので,FTPソフトでサーバに送るときは必ずバイナリ指定してください。
なお,ブラウザで見せる場合,見る人のパソコンに最新のJavaがインストールされているとは限りません。 そこで,例えば
javac -source 1.2 -target 1.1 Circles.java
のように,古いバージョンのJavaをターゲットにしてコンパイルしたほうがよいでしょう。
Javaにはバージョン1.1までの旧Javaと,1.2から始まる「Java 2」とがあります。 さらに拡張が行われた1.5はJava 2の「5.0」とも称されます(ややこしい)。 Mac OS X標準のものは1.4.xです(1.5も別途ダウンロードできます)。
ブラウザでJavaアプレットを表示する場合,[更新]([再読み込み])ボタンだけではアプレットの再読み込みができません。 Internet Explorer では Ctrl キーを押しながら[更新],Netscape では Shift キーを押しながら[再読み込み]を押してください。
Safari ではいったん command + Q で終了してから再度開いてください。
あるいは Java コンソールが前面に出ている状態で x
キーを押して「クラスローダキャッシュの消去 ... 完了。」というメッセージが出たことを確認してから再読み込みしてください。
Java コンソールは /アプリケーション/ユーティリティ/Java の中の「プラグイン設定」で有効にできるほか,Java エラーの「×」印を右クリックしたメニューからも起動できます。
ブラウザによってはメニューから Java コンソールが出せます(例えば Tools -- Web Development -- Java Console)。
appletタグの代わりにobjectタグを使う方法については appletかobjectか をご覧ください。
なお,<applet>
(または <object>
)タグの中身に
<applet code="Circles.class" width="300" height="100"> あなたのブラウザはJavaに対応していません。 </applet>
のように書いておけば,Java対応でないブラウザではメッセージ「あなたのブラウザはJavaに対応していません」が出ます。また,
<applet code="Circles.class" width="300" height="100"> <img src="circles.png" /> </applet>
のように書いておけば,Java対応でないブラウザでは circles.png
という図がアプレットの代わりに表示されます。
プログラムを少し解説しておきます。
import java.awt.*; import java.applet.Applet;
は,ここでは
import java.awt.Graphics; import java.applet.Applet;
でも同じことで,利用するクラスを列挙しています。
これがなくても,その下のプログラム中で Graphics
となっているところをすべて java.awt.Graphics
に変え,Applet
となっているところをすべて java.applet.Applet
に変えれば同じことです。
g.setColor(new Color(値));
は色を決めています。
値は 0x00FFFF
のように16進RGBで書けます。
ここでは乱数で指定しています(下位24ビットだけしか使われません)。
Color.gray
とか Color.yellow
のような名前も使えます。
<applet code="..." width="300" height="100">
のように与えた幅と高さをアプレット中で取得するには,getSize().width
および getSize().height
を使います。
つまり,次のようにできるわけです:
int x = a.nextInt(getSize().width); int y = a.nextInt(getSize().height);
Last modified: 2006-01-06 13:18:44