Java - Applet 基礎
你好,有志於Java開發的各位!我很興奮能與你們一起踏上一段令人興奮的Java Applets世界之旅。作為一個教學超過十年的編程老師,我可以向你們保證,儘管前方的道路可能看起來令人却步,但它同時也是極具報酬的。所以,讓我們挽起袖子,直接跳進去吧!
Java Applet 是什麼?
在我們開始編程之前,讓我們先了解Applet到底是什麼。將Applet視為一個可以嵌入網頁的小型Java程序。它就像一個迷你應用程序,在您的瀏覽器中運行,為原本靜態的HTML頁面帶來互動性和動態內容。
Java中Applet的生命週期
每個Applet在其生命周期中都會經歷一系列階段。理解這個生命周期對於開發有效的Applets至關重要。讓我們來拆解它:
- 初始化
- 開始
- 運行
- 停止
- 摧殘
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);
}
}
讓我們來拆解這個代碼:
- 我們從
java.applet
和java.awt
包中導入必要的類。 - 我們的類
HelloWorldApplet
繼承自Applet
類。 - 我們覆寫
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