跳转到内容

概述

100% developed
来自维基教科书,开放世界中的开放书籍

导航 用户界面 主题:v  d  e )


Java 小程序是以 Java 字节码形式交付的小程序。Java 小程序可以使用 Java 虚拟机 (JVM) 在 Web 浏览器中运行,也可以在 Oracle 的 AppletViewer 中运行,AppletViewer 是一款用于测试小程序的独立工具。Java 小程序在 1995 年 Java 语言的第一个版本中引入。Java 小程序通常用 Java 编程语言编写,但也可以用其他编译成 Java 字节码的语言编写,例如 Jython。

小程序用于为无法由 HTML 提供的 Web 应用程序提供交互式功能。由于 Java 的字节码是平台无关的,Java 小程序可以被 Windows、Unix、Mac OS 和 Linux 等许多平台的浏览器执行。有像 applet2app 这样的开源工具,可以用来将小程序转换成独立的 Java 应用程序/Windows 可执行文件。这具有在脱机模式下运行 Java 小程序而无需 Internet 浏览器软件的优势。

Java 小程序越来越少地使用。在 2018 年,您只能从 Microsoft Edge 的“兼容模式”和 Firefox 扩展支持版本中使用它。在可能的情况下,您最好使用 JavaScript

第一个小程序

[编辑 | 编辑源代码]

您至少需要创建两个东西:一个 HTML 页面和一个 Java 类。它可以在本地文件夹中完成,无需运行服务器,但更难理解什么是本地,什么是远程。HTML 页面必须使用 <applet/> 标记调用 Java 类。

Computer code 代码清单 9.3:HelloWorld.html
<!DOCTYPE html>
<html>
  <body>
    HTML content before the applet.<applet code="HelloWorld" height="40" width="200"></applet>HTML content after the applet.
  </body>
</html>

将此文件保存在一个文件夹中。由于 <applet/> 标记正在调用一个名为 HelloWorld 的 Java 类,因此我们的类应该被命名为 HelloWorld.java

Computer code 代码清单 9.4:HelloWorld.java
import java.applet.Applet;
import java.awt.Graphics;

public class HelloWorld extends Applet {

    /**
     * Print a message on the screen.
     */
    public void paint(Graphics g) {
        g.drawString("Hello, world!", 20, 10);
    }
}

保存此文件并在同一个文件夹中编译该类。现在让我们在浏览器中打开网页。

图 9.8:Java 小程序 HelloWorld。

我们很清楚地看到,“Hello, world!”的渲染方式与页面中的其他内容不同。

HTML 代码

[编辑 | 编辑源代码]
另请参见 applet 标记

要将 applet 嵌入 HTML 页面,您需要插入 <applet/> 标记。此标记可以具有多个属性

code* 要调用的主类的名称。它可以是类名,带或不带 .class
height applet 内容在网页上渲染区域的高度。
width applet 内容在网页上渲染区域的宽度。
archive 具有 .jar 扩展名的压缩 zip 档案的名称。档案可以包含运行 applet 所需的所有类。Applet 通常以这种形式交付,以最大程度地减少下载时间。

带有 * 的属性是必需的。

关于 applet 标签的使用已经有一些讨论,但它仍然可以用于入门,并且在现实世界中也能正常工作。

Java 源代码

[编辑 | 编辑源代码]

Applet 的构建方式与其他类或主程序不同。入口点不同,主类应该扩展 Applet 类。Applet 类有四个方法可以由浏览器调用,您可以重新定义

init() 当浏览器第一次加载 applet 时调用。它只被浏览器执行调用一次。
start() 当 applet 开始运行时调用。每当用户访问网页时,它都会被调用。
stop() 当 applet 停止运行时调用。每当用户访问网页时,它都会被调用。
destroy() 当用户退出浏览器时调用。它只被浏览器执行调用一次。
paint() 当 applet 需要渲染时调用,例如,当浏览器大小发生改变时。

前四个方法定义了 applet 的生命周期。至少要重新定义 init()paint()。HTML applet 标签可以嵌入 applet 源代码中,以允许 applet 直接由简单的 applet 查看器运行,而无需 .html 文件。通常,applet 标签紧随导入语句之后。它必须用 /* */ 注释括起来

Example 代码部分 9.10:MyApplet 注释
 /*
 <applet code="MyApplet.class"> </applet>
 */
华夏公益教科书