10 Applet

 

10.1浏览器怎样显示网页:

       浏览器打开网页文件其实同我们用记事本打开的过程是一样的,只是浏览器会对这个网页文件中的内容用特殊的方式显示。浏览器除了可以在本地硬盘上可以打开网页文件外,还可以打开网络上的WWW服务器上的文件。

10.2浏览器处理网页脚本代码的过程:

       当浏览器解释执行一段代码的时候,如果发现一段VBSCRIPT代码的时候,就会使用内嵌在浏览器上的VBSCRIPT解释器来解释,如果VBSCRIPT解释器不存在,这段代码就不能执行了。

10.3浏览器怎么处理Applet

       与通常的java程序不同,一个Applet小应用程序的执行不是从main()函数开始的。同浏览器解释执行script脚本一样,浏览器要正确显示并运行Applet必须内嵌有Applet的解释器。Applet的引用语句嵌入到HTML页面中,Applet在浏览器解释这段代码时被下载到客户端。

10.4Applet类及其方法

       Applet不是一个任意的java类,必须是java.applet.Applet的子类。WWW浏览器中内嵌的Applet解释器解释Applet的过程如下:WWW浏览器装载网页并解释其中的内容,碰到Applet标签后,下载标签中指定的Applet类的字节码文件,并创建该类的实例对象。经过WWW浏览器中的Java解释器的处理,浏览器就可以正常运行Applet小程序了。

       大多数的Applet小应用程序都重载一套方法,这些方法提供了浏览器或Applet小哦应用程序阅读器与Applet小应用程序之间的接口以及前者对后者的执行进行控制的机制。其中的四个方法:init(),start(),stop(),destroy()都是由Applet所定义的。paint()是由AWT组件类定义的。

       init()方法:Applet对象建立后,java就会立即调用该对象的init()方法,以通知Applet对象进行初始化。这个方法在Applet对象的生存期间只会被调用一次。

       Start()方法:java在调用了init()方法后,会接着调用这个方法。在WWW浏览器每次离开创建此Applet对象的页面后,java所创建的Applet对象不会消失,当WWW浏览器再回到创建此Applet对象的页面时又会调用这个方法。

       Stop()方法:在WWW浏览器每次离开创建此Applet对象的页面后,去访问令一个页面时,java会调用Applet的stop()方法,当stop()被调用时,小应用程序还在运行,使用stop()来停止只有网页当前被显示时才要保持运行的功能。

       Destroy方法:当维护该Applet对象的WWW浏览器关闭时,Applet对象也将被销毁。在Applet对象被销毁之前,destroy方法就会被调用,该方法通常用于释放在init方法中初始化的内容,调用该方法之前肯定已经调用了stop方法。

       URL(Uniform Resource Locator)是WWW资源统一资源定位器的简写。它规范了WWW资源网络定位地址的表示方法。WWW资源包括Web页、文本文件、图形文件、声频片段等等。URL类描述了WWW资源的特征及读其内容的方法。URL的基本表示格式是:           protocol://hostname:/resourcename#anchor。

       URL类的构造方法有四种: URL(URL absoluteURL)利用绝对URL地址,创建一个URL对象。参数:absoluteURL   绝对URL地址

       URL(URL url ,String relativeURL)利用已建立的URL对象和相对URL地址,创建一个URL对象。

       URL(String protocol,String host,String resourcename )利用protocol、host、resourcename创建一个URL对象。

       URL(String protocol,String host,int port,String resourcename )利用protocol、host、port、resourcename创建一个URL对象。

       URL类的构造函数中的参数如果无效就会抛出MalformedURLException异常。一般情况下程序员需要捕获并处理这个异常。

       URL类提供个方法主要包括对URL类对象特征(如:协议名、主机名、文件名、端口号和标记)的查询和对URL类对象的读操作。

       URL的一个重要方法是 InputStream openStream()。这个方法的作用是打开一个输入流,返回类型是InputStream,而这个输入流的起点是URL对象所代表的资源位置处,终点则是使用了该URL对象及方法openStream()的进程。在输入流建立之后,就可以从输入流中读取数据了,而这些信息数据的实际来源,则是输入流起点的网上文本文件。


 

下面继续研究java applet的开发细节。Applet与Application的区别主要是执行的方式不同。Application从其中的main()函数开始运行,而Applet是无法单独运行的,必须在HTML页面中被引用,由WWW浏览器下载并调用其中的方法。

       Applet 小应用程序的实现主要依靠java.applet 包中的Applet类。与一般的应用程序不同,Applet应用程序必须嵌入在HTML页面中,才能得到解释执行;同时Applet可以从Web页面中获得参数,并和Web页面进行交互。 含有Applet的网页的HTML文件代码中必须带有<applet>和</applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小程序代码并在本地计算机上执行该Applet小程序。

       Applet是一种Java的小程序,它通过使用该Applet的HTML文件,由支持Java的网页浏览器下载运行。也可以通过java开发工具的appletviewer来运行。Applet 程序离不开使用它的HTML文件。这个HTML文件中关于Applet的信息至少应包含以下三点:
  1)字节码文件名(编译后的Java文件,以.class为后缀)
  2)字节码文件的地址
  3)在网页上显示Applet的方式。

       Applet类是所有Applet应用的基类,所有的Java小应用程序都必须继承该类。Applet类的构造函数只有一种,即:public Applet()。

       在编写动画过程时,遇到最常见的问题是屏幕会出现闪烁现象。闪烁有两个原因:一是绘制每一帧花费的时间太长(因为重绘时要求的计算量大);二是在每次调用Pain()前,Java 会用背景颜色重画整个画面,当在进行下一帧的计算时,用户看到的是背景。有两种方法可以明显地减弱闪烁:重载 update()或使用双缓冲。

重载 update():当AWT接收到一个applet的重绘请求时,它就调用applet的 update(),默认地,update() 清除applet的背景,然后调用 paint()。重载 update(),将以前在paint()中的绘图代码包含在update()中,从而避免每次重绘时将整个区域清除。

使用双缓冲技术:另一种减小帧之间闪烁的方法是使用双缓冲,它在许多动画Applet中被使用。其主要原理是创建一个后台图像,将需要绘制的一帧画入图像,然后调用DrawImage()将整个图像一次画到屏幕上去;好处是大部分绘制是离屏的,将离屏图像一次绘至屏幕上比直接在屏幕上绘制要有效得多,大大提高做图的性能。

Applet标记被用来从HTML文件和小应用程序阅读器中启动一个小的应用程序。Applet标记有一系列属性:

Width     Applet在Html页面上的宽度
Height     Applet在Html页面上的高度
Name     Applet在Html页面上的名称,用于区名一个Html页面上的多个Applet
Code     Applet类名,必须带后缀”class”当没有属性archive时,直接写类名当有属性archive时,必须带包名
Codebase     Applet的类相对路径,相对于Html页面位置
Archive     Applet所在Jar包的文件名
标签< PARAM>的属性介绍
Name     Applet传入的参数名
Value     Applet传入的参数值
当Applet 为一个Class类文件嵌入的写法
属性Code    ==========Applet类名,必须带后缀名
属性CodeBase    ---------------Class类文件相对于Html页面的相对路径

object标记用来在网页中插入系统物件(系统模块)。其中有一个 classid属性用来指明系统物件(系统模块)的地址标号。这个属性指定了java解释器插件本身,这个插件其实就是一个IE浏览器专用的ActiveX控制,并不是网页中的Applet小程序,而是执行Applet小程序的解释器,Applet小程序作为Object标记的一个参数指定。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值