Java Applet 基础语法知识点及案例代码
Java Applet 是一种可以在网页中运行的小程序,尽管现代浏览器已经不再支持 Java Applet,但了解其基础语法和概念仍然有助于理解 Java 编程的基本原理。以下是一些 Java Applet 的基础语法知识点及案例代码。
1. Java Applet 基础语法知识点
1.1 Applet 生命周期
Java Applet 的生命周期由以下几个方法组成:
init(): Applet 初始化时调用,只调用一次。start(): Applet 启动时调用,每次页面加载或重新加载时调用。paint(Graphics g): 用于绘制 Applet 的内容,每次需要重绘时调用。stop(): Applet 停止时调用,通常发生在用户离开页面时。destroy(): Applet 销毁时调用,通常发生在浏览器关闭时。
1.2 Applet 类
Java Applet 必须继承 java.applet.Applet 类或 javax.swing.JApplet 类。
1.3 Graphics 类
Graphics 类用于在 Applet 中绘制图形、文本等。
2. Java Applet 案例代码
以下是一个简单的 Java Applet 示例,展示了如何在 Applet 中绘制文本和图形。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
// 继承 Applet 类
public class MyFirstApplet extends Applet {
// init() 方法:初始化 Applet
public void init() {
// 设置背景颜色为白色
setBackground(Color.white);
}
// paint() 方法:绘制 Applet 内容
public void paint(Graphics g) {
// 设置绘图颜色为蓝色
g.setColor(Color.blue);
// 绘制文本
g.drawString("Hello, World!", 50, 50);
// 设置绘图颜色为红色
g.setColor(Color.red);
// 绘制一个矩形
g.drawRect(50, 60, 100, 50);
// 设置绘图颜色为绿色
g.setColor(Color.green);
// 填充一个椭圆
g.fillOval(50, 120, 100, 50);
}
}
3. 代码解释
import java.applet.Applet;: 导入Applet类。import java.awt.Graphics;: 导入Graphics类,用于绘制图形和文本。import java.awt.Color;: 导入Color类,用于设置颜色。public class MyFirstApplet extends Applet: 定义一个继承自Applet的类。public void init():init()方法用于初始化 Applet,这里设置了背景颜色为白色。public void paint(Graphics g):paint()方法用于绘制 Applet 的内容。g.setColor(Color.blue);: 设置绘图颜色为蓝色。g.drawString("Hello, World!", 50, 50);: 在坐标 (50, 50) 处绘制文本 “Hello, World!”。g.setColor(Color.red);: 设置绘图颜色为红色。g.drawRect(50, 60, 100, 50);: 在坐标 (50, 60) 处绘制一个宽度为 100,高度为 50 的矩形。g.setColor(Color.green);: 设置绘图颜色为绿色。g.fillOval(50, 120, 100, 50);: 在坐标 (50, 120) 处填充一个宽度为 100,高度为 50 的椭圆。
4. 运行 Applet
要运行这个 Applet,你需要将其嵌入到 HTML 页面中。以下是一个简单的 HTML 文件示例:
<html>
<head>
<title>My First Applet</title>
</head>
<body>
<applet code="MyFirstApplet.class" width="300" height="200">
</applet>
</body>
</html>
将 MyFirstApplet.class 文件和 HTML 文件放在同一个目录下,然后使用支持 Java Applet 的浏览器打开 HTML 文件即可看到效果。
5. 注意事项
- 现代浏览器已经不再支持 Java Applet,因此你可能需要使用旧版浏览器或专门的工具来运行 Applet。
- 如果你使用的是 JDK 7 或更高版本,可能需要手动启用 Java Applet 支持。
6. 总结
Java Applet 提供了一种在网页中嵌入 Java 程序的方式,尽管现在已经不再广泛使用,但了解其基本概念和语法仍然有助于理解 Java 编程的基础知识。通过上述示例代码,你可以学习到如何创建一个简单的 Applet,并在其中绘制文本和图形。
以下是几个常见的 Java Applet 案例代码,涵盖了不同的功能和应用场景。
案例 1:显示当前日期和时间
这个 Applet 会显示当前的日期和时间,并每隔一秒更新一次。
import java.applet.Applet;
import java.awt.Graphics;
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateTimeApplet extends Applet implements Runnable {
private Thread thread;
private String currentTime;
// init() 方法:初始化 Applet
public void init() {
setBackground(Color.white); // 设置背景颜色为白色
}
// start() 方法:启动线程
public void start() {
if (thread == null) {
thread = new Thread(this); // 创建线程
thread.start(); // 启动线程
}
}
// run() 方法:线程执行逻辑
public void run() {
while (true) {
// 获取当前时间
Date now = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
currentTime = formatter.format(now);
// 调用 repaint() 方法刷新显示
repaint();
try {
Thread.sleep(1000); // 暂停 1 秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
// paint() 方法:绘制内容
public void paint(Graphics g) {
g.drawString("当前时间: " + currentTime, 50, 50); // 显示当前时间
}
// stop() 方法:停止线程
public void stop() {
if (thread != null) {
thread = null; // 停止线程
}
}
}
代码说明:
- 使用
Thread实现动态更新时间。 SimpleDateFormat用于格式化日期和时间。repaint()方法会触发paint()方法,刷新显示内容。
案例 2:绘制简单的图形
这个 Applet 会绘制一些基本的图形,如矩形、圆形和线条。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
public class ShapeApplet extends Applet {
// init() 方法:初始化 Applet
public void init() {
setBackground(Color.lightGray); // 设置背景颜色为浅灰色
}
// paint() 方法:绘制图形
public void paint(Graphics g) {
// 绘制矩形
g.setColor(Color.red);
g.drawRect(50, 50, 100, 80); // 绘制空心矩形
// 绘制填充矩形
g.setColor(Color.blue);
g.fillRect(200, 50, 100, 80); // 绘制填充矩形
// 绘制圆形
g.setColor(Color.green);
g.drawOval(50, 150, 100, 100); // 绘制空心圆形
// 绘制填充圆形
g.setColor(Color.yellow);
g.fillOval(200, 150, 100, 100); // 绘制填充圆形
// 绘制线条
g.setColor(Color.black);
g.drawLine(50, 300, 350, 300); // 绘制一条直线
}
}
代码说明:
- 使用
Graphics类的drawRect()、fillRect()、drawOval()、fillOval()和drawLine()方法绘制图形。 - 通过
setColor()设置颜色。
案例 3:处理鼠标事件
这个 Applet 会显示鼠标点击的坐标。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class MouseEventApplet extends Applet implements MouseListener {
private int x, y; // 存储鼠标点击的坐标
private String message = "点击鼠标以显示坐标"; // 默认提示信息
// init() 方法:初始化 Applet
public void init() {
setBackground(Color.white); // 设置背景颜色为白色
addMouseListener(this); // 注册鼠标事件监听器
}
// paint() 方法:绘制内容
public void paint(Graphics g) {
g.drawString(message, 50, 50); // 显示提示信息或坐标
}
// 鼠标点击事件
public void mouseClicked(MouseEvent e) {
x = e.getX(); // 获取鼠标点击的 X 坐标
y = e.getY(); // 获取鼠标点击的 Y 坐标
message = "鼠标点击坐标: (" + x + ", " + y + ")"; // 更新提示信息
repaint(); // 刷新显示
}
// 其他鼠标事件方法(必须实现,但可以为空)
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
}
代码说明:
- 实现
MouseListener接口以处理鼠标事件。 mouseClicked()方法捕获鼠标点击事件并更新坐标。repaint()方法刷新显示内容。
案例 4:加载并显示图片
这个 Applet 会加载并显示一张图片。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
public class ImageApplet extends Applet {
private Image image;
// init() 方法:初始化 Applet
public void init() {
// 加载图片
image = getImage(getDocumentBase(), "example.jpg"); // 图片文件需与 HTML 文件在同一目录
}
// paint() 方法:绘制图片
public void paint(Graphics g) {
if (image != null) {
g.drawImage(image, 50, 50, this); // 在坐标 (50, 50) 处绘制图片
} else {
g.drawString("图片加载失败!", 50, 50); // 显示错误信息
}
}
}
代码说明:
- 使用
getImage()方法加载图片。 drawImage()方法用于绘制图片。- 图片文件需与 HTML 文件在同一目录,或提供完整路径。
案例 5:简单的动画效果
这个 Applet 实现了一个简单的动画效果,一个小球在窗口中移动。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
public class AnimationApplet extends Applet implements Runnable {
private Thread thread;
private int x = 50, y = 50; // 小球的初始坐标
private int dx = 5, dy = 5; // 小球的移动速度
// init() 方法:初始化 Applet
public void init() {
setBackground(Color.black); // 设置背景颜色为黑色
}
// start() 方法:启动线程
public void start() {
if (thread == null) {
thread = new Thread(this); // 创建线程
thread.start(); // 启动线程
}
}
// run() 方法:线程执行逻辑
public void run() {
while (true) {
// 更新小球坐标
x += dx;
y += dy;
// 边界检测
if (x < 0 || x > getWidth() - 20) dx = -dx; // 水平方向反弹
if (y < 0 || y > getHeight() - 20) dy = -dy; // 垂直方向反弹
repaint(); // 刷新显示
try {
Thread.sleep(50); // 暂停 50 毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
// paint() 方法:绘制小球
public void paint(Graphics g) {
g.setColor(Color.red);
g.fillOval(x, y, 20, 20); // 绘制小球
}
// stop() 方法:停止线程
public void stop() {
if (thread != null) {
thread = null; // 停止线程
}
}
}
代码说明:
- 使用
Thread实现动画效果。 - 通过边界检测实现小球反弹。
repaint()方法刷新显示内容。
总结
以上案例涵盖了 Java Applet 的常见功能,包括动态内容显示、图形绘制、事件处理和动画效果。尽管 Java Applet 已经过时,但这些案例仍然有助于理解 Java 编程的基础知识。希望这些代码对你有所帮助!

2344

被折叠的 条评论
为什么被折叠?



