Java - アプレットの基本

こんにちは、Java開発者の卵たち!私は、この興奮するJavaアプレットの世界への旅にあなたと一緒に参加することを楽しみにしています。10年以上にわたってプログラミングを教えてきた者として、前方には困難な道が待っているかもしれませんが、それは非常に報酬があることを保証します。では、袖をまくっていきましょう!

Java - Applet Basics

Javaアプレットとは?

コードを書き始める前に、アプレットが実際に何であるかを理解しましょう。アプレットは、ウェブページに埋め込むことができる小さなJavaプログラムです。ブラウザ内で動作するミニアプリケーションであり、静止的なHTMLページにインタラクティブさと動的コンテンツを追加します。

Javaアプレットのライフサイクル

すべてのアプレットはその生涯でいくつかの段階を通ります。このライフサイクルを理解することは、効果的なアプレットを開発するためには不可欠です。以下是その詳細です:

  1. 初期化
  2. 開始
  3. 動作中
  4. 停止
  5. 破壊

Javaアプレットライフサイクルのフロー

このフローをよりよく視覚化するために、各ステージで呼び出されるメソッドを示したテーブルを見てみましょう:

ステージ 呼び出されるメソッド
初期化 init()
開始 start()
動作中 paint()
停止 stop()
破壊 destroy()

これらの各ステージについて、コードの例を交えて詳しく見ていきましょう。

シンプルなJavaアプレット「Hello, World」

まずはクラシックな「Hello, World」の例から始めましょう。これはアプレットの基本構造を理解するのに役立ちます。

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

public class HelloWorldApplet extends Applet {
public void paint(Graphics g) {
g.drawString("Hello, World!", 50, 25);
}
}

以下にその詳細を説明します:

  1. 必要なクラスを java.appletjava.awt パッケージからインポートします。
  2. 私たちのクラス HelloWorldAppletApplet クラスを拡張しています。
  3. paint メソッドをオーバーライドして、「Hello, World!」メッセージを描画します。

アプレットクラス

Applet クラスはすべてのアプレットのスーパークラスです。アプレットの実行のためのフレームワークを提供し、初期化、開始、停止、破壊のためのメソッドを含みます。以下にさらに包括的な例を示します:

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

public class LifeCycleApplet extends Applet {
String message = "";

public void init() {
message += "初期化中... ";
}

public void start() {
message += "開始中... ";
}

public void stop() {
message += "停止中... ";
}

public void destroy() {
message += "破壊中... ";
}

public void paint(Graphics g) {
g.drawString(message, 20, 20);
}
}

このアプレットはすべてのライフサイクルメソッドを示しています。各メソッドは message 文字列に追加し、それが paint メソッドで表示されます。

アプレットの呼び出し

アプレットを実行するためには、HTMLページに埋め込む必要があります。以下のようにします:

<html>
<body>
<applet code="LifeCycleApplet.class" width="300" height="100">
あなたのブラウザは <code>applet</code> タグをサポートしていません。
</applet>
</body>
</html>

アプレットのパラメータの取得

アプレットはHTMLページからパラメータを受け取ることができます。これにより、アプレットの行動をより柔軟にすることができます。以下にその方法を見てみましょう:

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

public class ParameterApplet extends Applet {
public void paint(Graphics g) {
String name = getParameter("name");
g.drawString("Hello, " + name + "!", 50, 25);
}
}

そしてHTMLでは以下のようになります:

<applet code="ParameterApplet.class" width="300" height="100">
<param name="name" value="アリス">
</applet>

イベント処理

アプレットはユーザーとのインタラクションに応答できます。簡単なボタンクリックアプレットを作成してみましょう:

import java.applet.Applet;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ButtonApplet extends Applet implements ActionListener {
Button b;
String message = "";

public void init() {
b = new Button("クリックして!");
add(b);
b.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
message = "ボタンがクリックされました!";
repaint();
}

public void paint(Graphics g) {
g.drawString(message, 50, 50);
}
}

このアプレットはボタンを作成し、クリック時にメッセージを更新します。

画像の表示

アプレットは画像も表示できます。以下に簡単な例を示します:

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;

public class ImageApplet extends Applet {
Image img;

public void init() {
img = getImage(getDocumentBase(), "myimage.jpg");
}

public void paint(Graphics g) {
g.drawImage(img, 0, 0, this);
}
}

このアプレットは、HTMLファイルと同じディレクトリにある画像をロードし、表示します。

オーディオの再生

最後に、アプレットがオーディオを再生する方法を見てみましょう:

import java.applet.Applet;
import java.applet.AudioClip;

public class AudioApplet extends Applet {
AudioClip clip;

public void init() {
clip = getAudioClip(getCodeBase(), "mysound.au");
}

public void start() {
clip.play();
}

public void stop() {
clip.stop();
}
}

このアプレットはオーディオファイルをロードし、アプレットが開始されたときに再生し、停止されたときに停止します。

そして、みなさん!Javaアプレットの基本をカバーしました。ライフサイクルからイベント処理、画像の表示、オーディオの再生まで。練習は完璧を生む、 therefore 実験を恐れず、自分のアプレットを作成してください。ハッピーコーディング!

Credits: Image by storyset