applications
一个java(TM) application由一个或者多个class文件组成,其中有一个class定义了main()方法。你可以在任何提供了 Java 解释器的环境中运行 Java application,例如,在 Java IDE 中。Sun 公司的 Java 运行环境(JRE)也提供了 Java 解释器,但是并没提供编译器这种与 Java 开发相关的工具。
Java applet 不是一个 application,它没有定义 main()方法。实际上,applets 是靠它的宿主 application (如 web 浏览器)来启动、打开、关闭窗口。
Applets
很多applets只是简单地用来在Web浏览器的指定窗口中显示图形图像,也有些applet是用来提供一个带命令按扭的GUI,这种命令按扭通常用做启动应用指定的操作。Applet操作一般在某些安全限制下进行,这是为了防止用户受到未知情况下下载的applet偷窃私有数据,损坏文件系统等行为的破坏。
Java(TM) 编程语言功能强大,相当完美。但是,极具讽刺的是,很多人只熟悉到其开发Applet的作用。Java 编程语言正成为其它广泛的开发领域中的一种选择。不管怎么说,Applets 在很多网络环境中扮演了一个重要角色,因为它能为从基于网络的用户界面到企业计算服务的实现提供一套很完美的解决办法。
一个 applet 是一个用户定义的类的实例,该类将 Applet ( java.applet.Applet ) 非凡化 (specialize) 或者说从 Applet 继续而来。类的继续超出了本教程讲述的范围,但是,此处,非凡化一个类就是指扩充该类的能力。Applet 是一个带有空的 paint() (placeholder) 类。因此,为了开发一个显示在 Web 浏览器窗口中的小小的 applet ,你得实现 paint() 方法完成图形输出。
Applet 使用 Java Abstract Windowing Toolkit (AWT) 中的 Graphics 类(该类提供了画图的原始方法)和一些GUI 组件如 Button 和 TextField 等。通过这些组件的使用,设计那些企业集团的用户可从 Web 浏览器访问的图形表格实体应用变得很直接。
虽然 Applet 程序员在开发特定任务时一般都要实现用来控制 Applet 在浏览器窗口中的的生命周期的几个方法如 init(), start(), stop(),此处的小例子仅带有 init() 和 paint() 方法就够了。DogApplet.java 实现了一个简单的 Applet 来演示一个图形 barking 的消息:
import java.awt.*;
import java.applet.Applet;
public class DogApplet extends Applet {
public void init() {
setBackground(Color.pink);
}
public void paint(Graphics g) {
g.drawString("Woof!", 10, 20);
}
}
init() 将背景设置为非凡的颜色来确保它在浏览器窗口区域中是可见的。支持 Java 的 Web 浏览器仅在运行其它方法前运行 init() 一次。方法 paint() 使用一个由浏览器环境通过参数传入的 Graphics 的实例,来实现在坐标 (10, 20) 处(相对 applet 的窗口区域而言)绘制一个字符串。
在一个 Web 页中指定一个 applet 必须提供一个 Html applet 标签来指定 class 文件(code="class-file")和文件所在的相对位置(codebase="location"),同时指定 Applet 窗口区域相对于 Web 页中其它组件所需的宽度和高度。例如,文档中包含了下面的 Applet 标签:
在处理这个标签时,浏览器完成:
● 装入 DogApplet 类文件
● 在窗口中为之分配区域
● 初始化 DogApplet
● 执行指定的方法如 init()
DogApplet 显示如下:
现在,大家是否发现Applet的开发并不是一件烦琐的事情,而且在很多情况下,它也并不是实现简单动画的最佳解决方案。
Applet 确实能够通过循环显示一系列 GIF 图象来实现简单的动画。但是,某些 GIF 动画图象编辑器可能更适合简单动画。使用这些 GIF 编辑器,你可以很轻易控制普通的动画特性,但是用 Applet 你得编程来实现。当然,Applet 技术为处理复杂动画的编程工具提供了更为广泛的范围。