Ch8 Java Applet
合集下载
Java的Applet编程

Java的Applet编程
开始
返回
上一页
下一页
16
2. Applet的编译
如同应用程序的类,执行前必须对applet类 进行编译,在命令行状态使用javac命令对 WelcomeApplet.java进行编译,得到 WelcomeApplet.class类文件。命令如下:
javac WelcomeApplet.java
Java的Applet编程
开始
返回
上一页
下一页
5
2. Applet的程序结构
下面是一个简单的applet的程序结构。如图: public class SimpleJApplet extends JApplet{ public void init(){……} public void start(){……} public void stop(){……} public void destroy(){……} public void paint(Graphics g){……} …… }
Java的Applet编程 开始 返回 上一页 下一页 14
public class WelcomeApplet extends JApplet{ public void paint(Graphics g) { super.paint(g); //调用超类JApplet的paint方法
//在坐标为(25,25)的位置显示字符串
Java的Applet编程
开始
返回
上一页
下一页
21
< PARAM NAME = appletParameter1 VALUE = value > <PARAM>属性可以使得Applet能够从页面中获取所需的 参数。 Applet可以用其方法getParameter()获取<PARAM>属性 指定的参数。 <PARAM>属性的作用与应用程序中main()方法里参数 String args[]的作用是一样的。 一个好的小应用程序,应该提供用户能够设置外部参数的功 能,以使得用户能够根据自己的需要来应用它。方法 getParameterInfo()可以得到有关<PARAM>属性的说明信 息。
第16章 Java Applet程序

习惯上把浏览器内置的JVM创建的主类的对象称作 一个applet,applet具有下列行为 (1)初始化:init() (2)启动:start() (3)停止:stop() (4)删除:destroy() (5)描绘:paint(Graphics g)
用Java可以编写播放.au、aiff、.Wav、Midi、rfm格 式的音频。Au格式是Java早期唯一支持的音频格式 .要在程序中播放声音。为了播放音频,必须首先获 得一个AudioClip对象,AudioClip类是java.applet包 中的类。可以使用Applet的一个静态的方法(类方 法): newAudioClip(.URL) 或Applet类的实例方法: getAudioClip(Url url,String name)
一个Java Applet程序中必须有一个类是Applet类的 子类。称该子类是Java Applet程序的主类,并且主 类必须修饰为public的。Applet类是java.applet包中 的一个类,同时它还是java.awt包中Panel类的子类 ,因此Java Applet程序的主类的实例是一个容器, 因此可以在这个容器中添加组件,处理组件事件, 完成一些工作。
2.编译 编译成功后,文件夹下会生成一个class文件。如果 源文件有多个类,将生成多个class文件,都和源文 件在同一文件夹里。
3.运行 Java Applet程序属于Java嵌入式开发的一种,嵌入 式程序的主类的实例化由嵌入该程序的平台中的 JVM负责。这样一来,必须向这样的平台提供相应 的所谓配置文件,嵌入该程序的平台使用配置文件 通知平台中的JVM创建主类的对象,并让该对象产 生相应的一些行为。 Java Applet必须嵌入到浏览器中来运行,因此必须 编写一个超文本文件(含有applet标记的web页) ,即所谓的配置文件,告诉浏览器来运行这个Java Applet。
java Applet知识要点讲解

<HTML> <HEAD> <TITLE>Applet Parameter Test </TITLE> </HEAD> <applet code=“AppletPara.class" width=300 height=300> <param name=p1 value="1111"> <param name=p2 value="2222"> </applet> </HTML>
第 10 页 2015/12/2 19:03
2.Applet的运行控制
【例8.2】
例5.4创建了一个具有两个按钮的独立 应用程序,现在将这个程序改造成一个 Applet , 并在 Web 浏览器中执行这个 Applet 。在实现这个 Applet 时,覆盖start() 和stop()方法,显示附加文 本。
第 14 页 2015/12/2 19:03
8.2.1 <APPLET>标记属性
ALT = alternateText 如果浏览器支持Applet但不能运行它,就显示 alternateText中所给出的文字;否则就忽略它。 WIDTH = pixels HEIGHT = pixels Applet在浏览器中所显示的高度和宽度(以象素为单位)。 ALIGN = alignment Applet在浏览器中显示时的对齐方式,其含义与效果与图 片在HTML中的一样。其取值有: left, right, top, texttop, middle, absmiddle, baseline, bottom, absbottom。 VSPACE = pixels HSPACE = pixels Applet在浏览器中显示时上下、左右要预留的高度和宽度, 其含义与效果与图片在HTML中的一样。
第 10 页 2015/12/2 19:03
2.Applet的运行控制
【例8.2】
例5.4创建了一个具有两个按钮的独立 应用程序,现在将这个程序改造成一个 Applet , 并在 Web 浏览器中执行这个 Applet 。在实现这个 Applet 时,覆盖start() 和stop()方法,显示附加文 本。
第 14 页 2015/12/2 19:03
8.2.1 <APPLET>标记属性
ALT = alternateText 如果浏览器支持Applet但不能运行它,就显示 alternateText中所给出的文字;否则就忽略它。 WIDTH = pixels HEIGHT = pixels Applet在浏览器中所显示的高度和宽度(以象素为单位)。 ALIGN = alignment Applet在浏览器中显示时的对齐方式,其含义与效果与图 片在HTML中的一样。其取值有: left, right, top, texttop, middle, absmiddle, baseline, bottom, absbottom。 VSPACE = pixels HSPACE = pixels Applet在浏览器中显示时上下、左右要预留的高度和宽度, 其含义与效果与图片在HTML中的一样。
JAVA Applet

Applet的生命周期
• destroy只执行一次。用来释放资源,在 stop( )方法之后执行。 • 浏览器正常关闭时,Java自动调用该方法。 destroy( )方法用于释放applet占用的、由本 地操作系统管理的任何系统资源。当然, 如果小应用程序仍然处于活动状态,Java会 在调用destroy( )方法之前,调用stop( )方法。来自Applet的运行控制关系
Applet的生命周期
• applet的生命周期主要有五个状态:创建、初始化、开始运行/ 重新运行、停止和消亡。applet不需要特别创建,会有运行时 环境根据HTML页面中的<Applet>标记在Web浏览器或 appletviewer中自动创建。创建后,applet就调用init( )方法,该 方法能加载applet参数和执行必要的初始化处理,从而完成 applet的初始化工作。接着调用start( )方法,applet程序开始执 行,start( )方法是applet初次执行或重新执行的入口。当applet 页面所在的浏览器窗口图标化或转到其他页面时,applet执行 stop( )方法,可停止applet的执行。如果浏览器又重新加载该 applet页面,或者浏览器窗口解除图标化,则applet调用start( ) 方法,重新执行。如果关闭浏览器,则applet调用destroy( )方法, 进行终止处理,结束applet的生命周期。
JAVA Applet
概述
• 含有applet的网页中必须带有<Applet>标记,当支持 Java的浏览器遇到该标记时,就会下载相应的applet 代码并在本地计算机上执行。因此网页中的 <Applet>标记应提供相应的信息,至少应包含以下 三点:①.字节码文件名(编译后的Java文件, 以.class为后缀);②.字节码文件的地址(文件的位 置);③.在网页上显示applet的方式(大小等的控 制)。这样,浏览器就可以找到想要下载的applet 代码并按指定的方式运行。 • HTML增加applet有关的内容能够使网页更加富有生 气,如添加声音、动画等吸引人的特征,但并不会 改变HTML中与applet无关的元素。
第8章 Java Applet编程

8.5 小
结
• 本章中,对Applet的基础知识,工作原理、生命 周期,以及Applet的部署和基本事件的处理,还 有向Applet传递参数等等作了详细介绍。总的来 说,基于Applet的应用有很多,由于篇幅关系, 这里不再详细介绍,留待读者进一步在实践中去 探索。
8.1.1 Applet的特点
• • • • 应用小程序Applet能够完成以下的工作: (1)Applet能够播放声音; (2)Applet运行在Web浏览器中,它提高了HTML文档的交互性; (3)Applet能够调用在同一页中其他应用小程序的公共(Public) 函数; • (4)Applet可以从本地文件系统中装载(用户在CLASSPATH中定 义的路径),那么从网络装载时所产生的约束将不再适用于这个 Applet; • (5)虽然一旦离开Applet所在的页,大多数Applet将停止运行, 但是这并不是绝对的,通常,大部分Applet具有良好的行为,后 面介绍的stop()函数,目的就在于在编程者离开其所在页时停止 进程的运行,但是,有时候希望让Applet继续运行,例如用户让 Applet执行一个复杂的运算,那么当离开其所在的页时,编程者 希望这个运算能继续进行下去。
第8章 Java Applet编程
• 在这一章中,将介绍Applet网页小应用程序。 Applet网页小应用程序是个面向网络的程序。可 以用来让程序员创建应用程序,并放置在网络服 务器上,而用户可以通过网络下载这些应用程序, 并利用浏览器安全地运行。
8.1 Applet基础知识
• Java Applet小应用程序是一种特殊的Java程序。 这种小程序运行在支持Java的浏览器上,同时也 可以使用JDK所带的appletviewer命令来测试。要 让小程序运行,需要将已经编译好的字节码文件 (.class文件),用特殊标记嵌入到HTML语言编 写的Web页面中。这样,当打开Web页面时,浏览 器会使用内置的Java解释器来运行小程序。
Java Applet程序编程实现技术

(3)在浏览器中(或JDK中自带的appletviewer.exe )打 开(本地或远程http方式)此HTML文档,即可执行此 Applet程序。 Applet其实是一种能够在浏 览器(Web)中运行的特殊的图 形用户界面程序。
3、Applet程序的作用 (1)形成动态可交互式的网页 (2)可利用浏览器中所提供的图形功能显示及处理图像、 处理用户界面、网络通讯、用户事件处理、访问后台 数据库等功能。
6、双重身份的Applet程序 (1)特点 一个Java类文件可以既是一个Java Applet,又是一 个Java Application; 此时它却既可以在浏览器中运行,又可以作为 Application单独运行。 (2)程序示例
public class AppletApp extends JApplet{ public String s; public void init(){ s = new String(“Hello World!”); } public void paint(Graphics g){ g.drawString(s,25,25); } public static void main( String args[] ){ JFrame f = new JFrame(“Applet-App”); AppletApp app = new AppletApp(); f.add(app, “Center”); f.setSize(200, 200); 将Applet程序作为一个 f.setVisible(true); 组件添加到窗口Frame中 app.init(); app.start(); } }
4、Applet的5种工作状态
(1)Applet类中的5个成员函数 init( ) 初始化函数(对应初始化状态) start()开始函数(对应启动状态) paint() 绘制显示函数(对应绘制状态) stop() 终止函数(对应终止状态) destroy()消毁函数(对应消毁状态) (2)应用要求 Applet程序的加载、执行、卸载不同于一般的Java 应用程序; 其内的5个成员函数分别对应于Applet程序的生命 周期的不同阶段的活动; 一般应在自己的Applet中重写出它们以实现自己的 行为。
JavaApplet

Applet的安全限制
Applet的限制 SERVER applet被下载的
co n ne cti on
Browser
本地程序
applet
file
SERVER 与applet无关的
onn c
tion ec
local
本地方法
Applet
看看我们以前学过的一个简单例子:
import java.applet.*; import java.awt.*; public class HelloApplet extends Applet { public String s; public void init() { s = new String(“Hello World!”); } public void paint(Graphics g) { g.drawString(s,25,25); } }
Applet
回忆一下Applet的书写格式 import java.applet.*; public class MyApplet extends Applet{ … ; } 每一个Applet都继承自java.applet.Applet类,并且每个小 应用都有一个主程序类,之前必须加上public。
Applet的常用方法
除了四个Applet生命周期控制的方法外,Applet类还 提供了一些其他有用的方法: public AppletContext getAppletContext() public String getAppletInfo():应该被重写 public URL getDocumentBase() public URL getCodeBase() public String getParameter(String name) public String[][] getParameterInfo() :应该被重写 public void showStatus(String msg) public boolean isActive()
第8章 Java Applet

import java.applet.*; public class MyApplet extends Applet { …… }
8.2.1 Applet类的创建
创建一个小应用程序:
import java.applet.*; public class MyApplet extends Applet { … …}
public void paint(Graphics g)
8.2.2 Applet的生命周期 初始态(瞬态)
第一次装入,调用init() 方法,创建applet对象 调用start( )方法
运行态
离开Web页面:极小 化或装入其他页面, 调用stop()方法, applet不显示 重新装入或改变页面 大小或返回Web页面, 调用start()方法,重新 显示applet
Applet的下载与运行过程 HTML文件 WWWHtml> ….. <Applet code = myapplet.clss …………> ……. <Html>
WWW服务器
请求
Applet 字节码 文件
下
载字 节码
请求
HTML 文件
WWW浏览器 (Browser)
第8章 Java Applet
前面的章节我们阐述了Application的应用,这一讲我们将介绍java 的另一类应用java Applet,即java小应用程序;
在Java问世的头几年里,其热门的根本原因还是在于Java具有“让
Internet动起来”的能力; 具体地说,就是Java能创建一种特殊类型的程序(通常称作 “小应用程序”或者Applet),具备Java能力的Web浏览器可从 网上下载这种程序,然后运行;
8.2.1 Applet类的创建
创建一个小应用程序:
import java.applet.*; public class MyApplet extends Applet { … …}
public void paint(Graphics g)
8.2.2 Applet的生命周期 初始态(瞬态)
第一次装入,调用init() 方法,创建applet对象 调用start( )方法
运行态
离开Web页面:极小 化或装入其他页面, 调用stop()方法, applet不显示 重新装入或改变页面 大小或返回Web页面, 调用start()方法,重新 显示applet
Applet的下载与运行过程 HTML文件 WWWHtml> ….. <Applet code = myapplet.clss …………> ……. <Html>
WWW服务器
请求
Applet 字节码 文件
下
载字 节码
请求
HTML 文件
WWW浏览器 (Browser)
第8章 Java Applet
前面的章节我们阐述了Application的应用,这一讲我们将介绍java 的另一类应用java Applet,即java小应用程序;
在Java问世的头几年里,其热门的根本原因还是在于Java具有“让
Internet动起来”的能力; 具体地说,就是Java能创建一种特殊类型的程序(通常称作 “小应用程序”或者Applet),具备Java能力的Web浏览器可从 网上下载这种程序,然后运行;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/4/14
15
用于显示Applet的方法
paint()、update()和repaint()
程序调用 repaint()
AWT线程(waiting)
update() : 清空区域调 用paint()
Exposure:遮盖、 调整大小、最 大最小化等
paint()
2020/4/14
16
AWT线程
…//相应的代码 }
2020/4/14
10
Applet类的继承关系
ng.Object ponent
java.awt.TextComponent
java.awt.Button
java.awt.Container
java.awt.TextArea 2020/4/14
java.awt.Windo w
java.awt.Frame
java.awt.Panel java.applet.Applet
11
Applet的运行控制关系
java.applet.Applet
public void init() public void start()
public void destroy() public void stop()
2020/4/14
Java Applet
曹迎春 yccao@
1
Applet基础
java Applet也叫java小应用程序。 Applet不能单独运行,需要采用HTML编写的网
页来作为它的载体,在浏览器环境下运行。 在网页中装载Applet的步骤:
告诉网页从什么地方得到Applet。 通知网页把下载来的Applet放在网页上的什么位置,
Applet本身的执行过程也较Application复杂。
20安全基础
Applet不能读写本地计算机的文件系统,也不能 运行任何本地可执行程序。
Applet不能同除它们的下载处的服务器(该服务 器称作原始主机)以外的其他任何主机通信。
Applet只能获取本地计算机中的以下信息:当前 使用的java版本;操作系统的名字和版本;用来 分离文件、路径以及行的字符。
Applet的显示和刷新由一个独立线程控制,该线 程称为AWT线程。
沙箱
有用的资源(如文件等)
远程代码
2020/4/14
6
Applet的安全基础
允许用户自行设定相关的安全级别。
本机或远程代码
安全策略
类下载器
JVM
沙箱
有用的资源(如文件等)
2020/4/14
7
Applet的安全基础
浏览器通常禁止Applet程序的下述行为:
在运行过程中调用执行另一个程序。 所有文件I/O操作。 调用本机方法。 企图打开提供该Applet的主机以外的某个套接口。
s=new String("Welcome to Java World"); } public void paint(Graphics g){
g.drawString(s,25,25); } }
2020/4/14
9
编写Applet
import java.applet.Applet; public class AppletName extends Applet{
public void paint(Graphics g)
2020/4/14
12
import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet{
public void paint(Graphics g){ g.drawString(“Hello World!”,25,25);
} }
2020/4/14
13
Applet的生命周期
第一次装入,构造Applet类, 初始态
调用init()方法
调用start()方法
运行态
离开Web页面,极小化或装入 其他页面,调用stop()方法
停止态
重新装入,改变页面大小或返回 Web页面,调用start()方法
关闭浏览器,调用stop()、 destroy()方法
显示区域是多大。 使用外部的java运行环境或者内置的java虚拟机运行
Applet。
2020/4/14
2
Applet与Application的区别
Application是通过java解释器执行的独立程序,从 main()方法开始;
Applet是在浏览器中运行的。除java程序外,还 必须创建一个对应的HTML文件,通过<applet> 标记指定要运行的Applet程序名。
消亡态
2020/4/14
14
Applet的生命周期
init():
当初始化Applet的时候使用的方法。当java第一次运行Applet时, 系统调用该方法,进行全部的初始化工作。
start():
在java调用了init方法以后自动调用该方法。或者是用户从其他页面 返回到包含Applet界面时该方法也会被调用,也就是该方法被多次 调用,init()方法只会被调用一次。
stop():
该方法在用户离开包含Applet的页面时会被自动调用,对于同一个 Applet,该方法会被多次调用。该方法在用户不再关注Applet时, 释放掉Applet所占用的资源。
destroy():
当包含Applet浏览器时,该方法会被调用。因为Applet仅仅生存于 HTML页面中,当用户不再浏览包含Applet的页面时,Applet就不 应该遗留什么资源在系统中了。
2020/4/14
4
Applet的安全基础
java提供了一个SecurityManager类,该类在 JVM上对几乎所有系统级调用进行了监控。
sandbox(沙箱)安全模式
本机代码
远程代码
JVM
沙箱
有用的资源(如文件等)
2020/4/14
5
Applet的安全基础
签名Applet
本机代码
JVM
2020/4/14
8
简单的Applet
import java.awt.Graphics; import java.applet.Applet; public class HelloEducation extends Applet {
public String s; public void init() {