Java - Applet 基礎

你好,有志於Java開發的各位!我很興奮能與你們一起踏上一段令人興奮的Java Applets世界之旅。作為一個教學超過十年的編程老師,我可以向你們保證,儘管前方的道路可能看起來令人却步,但它同時也是極具報酬的。所以,讓我們挽起袖子,直接跳進去吧!

Java - Applet Basics

Java Applet 是什麼?

在我們開始編程之前,讓我們先了解Applet到底是什麼。將Applet視為一個可以嵌入網頁的小型Java程序。它就像一個迷你應用程序,在您的瀏覽器中運行,為原本靜態的HTML頁面帶來互動性和動態內容。

Java中Applet的生命週期

每個Applet在其生命周期中都會經歷一系列階段。理解這個生命周期對於開發有效的Applets至關重要。讓我們來拆解它:

  1. 初始化
  2. 開始
  3. 運行
  4. 停止
  5. 摧殘

Java Applet生命週期的流程

為了更好地視覺化這個流程,讓我們看一個概述每個階段調用的方法的表格:

階段 調用的方法
初始化 init()
開始 start()
運行 paint()
停止 stop()
摧殘 destroy()

現在,讓我們深入到這些階段的每一個,並提供一些代碼示例。

一個簡單的Java Applet "Hello, World"

讓我們從經典的"Hello, World"示例開始。這將幫助我們理解Applet的基本結構。

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. 我們的類HelloWorldApplet繼承自Applet類。
  3. 我們覆寫paint方法來繪製我們的"Hello, World!"信息。

Applet 類

Applet類是所有applets的超類。它提供了一個applet執行的框架,包括初始化、開始、停止和摧殘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);
}
}

這個applet展示了所有的生命周期方法。每個方法都會增加到message字符串中,然後在paint方法中顯示。

調用Applet

要運行一個applet,我們需要將其嵌入到HTML頁面中。以下是如何操作的示例:

<html>
<body>
<applet code="LifeCycleApplet.class" width="300" height="100">
您的瀏覽器不支持<code>applet</code>標籤。
</applet>
</body>
</html>

獲取Applet參數

Applets可以從HTML頁面接收參數。這使得applet的行為具有更大的靈活性。讓我們看看如何操作:

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="Alice">
</applet>

事件處理

Applets可以响应用户交互。讓我們創建一個簡單的按鈕點擊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);
}
}

這個applet創建了一個按鈕並響應點擊,通過更新信息。

顯示圖像

Applets也可以顯示圖像。以下是一個簡單的示例:

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);
}
}

這個applet從與HTML文件相同的目錄中加載一個圖像並顯示它。

播放音頻

最後,讓我們看看applets如何播放音頻:

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();
}
}

這個applet加載一個音頻文件,並在applet開始時播放,當applet停止時停止播放。

至此,各位!我們已經涵蓋了Java Applets的基本知識,從生命周期到事件處理,顯示圖像和播放音頻。記住,熟能生巧,所以不要害怕嘗試這些示例並創建自己的applets。快樂編程!

Credits: Image by storyset