Java学习教程,从入门到精通, Java Applet 基础语法知识点及案例代码(87)

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 编程的基础知识。希望这些代码对你有所帮助!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值