java

位置:IT落伍者 >> java >> 浏览文章

Java:Applications与applets


发布日期:2020年07月21日
 
Java:Applications与applets

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 ( javaappletApplet ) 特殊化 (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() 方法就够了DogAppletjava 实现了一个简单的 Applet 来演示一个图形 barking 的消息

import javaawt*;

import javaappletApplet;

public class DogApplet extends Applet {

public void init() {

setBackground(Colorpink);

}

public void paint(Graphics g) {

gdrawString(Woof! );

}

}

init() 将背景设置为特殊的颜色来确保它在浏览器窗口区域中是可见的支持 Java 的 Web 浏览器仅在运行其它方法前运行 init() 一次方法 paint() 使用一个由浏览器环境通过参数传入的 Graphics 的实例来实现在坐标 ( ) 处(相对 applet 的窗口区域而言)绘制一个字符串

在一个 Web 页中指定一个 applet 必须提供一个 HTML applet 标签来指定 class 文件(code=classfile)和文件所在的相对位置(codebase=location)同时指定 Applet 窗口区域相对于 Web 页中其它组件所需的宽度和高度例如文档中包含了下面的 Applet 标签:

在处理这个标签时浏览器完成

● 装入 DogApplet 类文件

● 在窗口中为之分配区域

● 初始化 DogApplet

● 执行指定的方法如 init()

DogApplet 显示如下

现在大家是否发现Applet的开发并不是一件烦琐的事情而且在很多情况下它也并不是实现简单动画的最佳解决方案

Applet 确实能够通过循环显示一系列 GIF 图象来实现简单的动画但是某些 GIF 动画图象编辑器可能更适合简单动画使用这些 GIF 编辑器你可以很容易控制普通的动画特性但是用 Applet 你得编程来实现当然Applet 技术为处理复杂动画的编程工具提供了更为广泛的范围

上一篇:Java终止函数深度分析

下一篇:Linux + Java = Lava(巖浆)?