第八章  applet 小应用程序

40
第第第 Applet 第第第第第

Upload: conroy

Post on 16-Mar-2016

202 views

Category:

Documents


7 download

DESCRIPTION

第八章  Applet 小应用程序. 8.1 applet 基础. 在浏览器内运行的 java 程序 applet 仍然要比 HTML 、 XML 以及脚本技术的任意组合强大的多 跨平台 很安全 不能访触摸任何本地文件 不能访问源站点以外的网络资源 通过数字签名验证的可以做更多事情. 当 applet 刚被开发出来时,只有 sun 的 HotJava 能查看包含 applet 的网页. Netscape 、 IE 的加入,使得 applet 真正流行起来. 仅支持 Java1.1 的大部分功能. 解决方法: Java 插件. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第八章  Applet 小应用程序

第八章  Applet 小应用程序

Page 2: 第八章  Applet 小应用程序

8.1 applet 基础在浏览器内运行的 java 程序applet 仍然要比 HTML 、 XML 以及脚本技术的任意组合强大的多跨平台很安全

– 不能访触摸任何本地文件– 不能访问源站点以外的网络资源– 通过数字签名验证的可以做更多事情

Page 3: 第八章  Applet 小应用程序

当 applet 刚被开发出来时,只有 sun的 HotJava 能查看包含 applet 的网页 Netscape 、 IE 的加入,使得 applet 真正流行起来

仅支持 Java1.1 的大部分功能 解决方法: Java 插件 Java2 SDK 自动下载插件

Page 4: 第八章  Applet 小应用程序

一。什么是 Japplet(Applet)一个 Java applet 程序中必须有一个类是 JApplet 类的子类,称该子类为 Java applet 的主类 例 : public class DrawImage extends JApplet主类必须用 public 来修饰主类的实例是一个容器

Page 5: 第八章  Applet 小应用程序

二 .Applet 的运行 applet 必须嵌入 HTML 文件中方可执行,因此 HTML 页必须告诉浏览器需加载哪个 applet 及在网页中的位置<applet code= 字节码文件名 width=n height=n></applet>例:<applet code=DrawImage.class width=200 height=300></applet>

Page 6: 第八章  Applet 小应用程序

Applet 可在浏览器下运行  c:\1000\boy.html也可用 JDK 的开发工具中的 appletviewer 工具浏览 Applet 效果  c:\1000\appletviewer boy.html如果一个 HTML 文件 中包含多个 applet ,那么运行时,将会弹出多个窗口

Page 7: 第八章  Applet 小应用程序

一个小技巧可将applet标记作为注释添加到源程序中:/*<applet code=Not.class width=200 height=300></applet> */public class Not extends JApplet{…. }然后用appletviewer来直接运行名为Not.java的源程序appletviewer Not.java例:Not.java

Page 8: 第八章  Applet 小应用程序

三 .JApplet 类JApplet(Applet) 类是所有 applet 的基类,所有的小应用程序都是该类的子类import java.applet.*;public class Testapplet extends JApplet{….}

Page 9: 第八章  Applet 小应用程序

常用方法:判断 applet 是否年于激活状态public boolean isactive()文件定位方法public URL getCodeBase( )public Image getImage( URL url)public Image getImage( URL url,String name)public AudioClip getAudioClip( URL url)public AudioClip getAudioClip( URL url,String name)

Page 10: 第八章  Applet 小应用程序

播放声音、显示图象、输出字符串方法public void play(URL url)public void loop(URL url) public void drawImage(img,x,y)

public void drawString(str,x,y)

applet 构成方法public void init( )public void start( )public void stop( )public void destroy( )public void paintComponent( )public void repaint( )

Page 11: 第八章  Applet 小应用程序

8.2 一个 applet 的生存周期 JApplet 中常用的几种常用方法

public class classname extends JApplet{public void init() {…………. } public void start() {………. } public void stop( ) {………… }public void destroy( ) {…………. }public void paintComponent(Graphics g) {………… } ……………. }

Page 12: 第八章  Applet 小应用程序

init( ) 当一个 applet 被系统执行时,系统将首先自动执行 init( ) 方法 通常用 init( ) 方法作一些初始化工作。如:创建对象、设置初始状态、加载图象等public void init( ){…… }Init() 方法只能被执行一次

Page 13: 第八章  Applet 小应用程序

 

start( )系统在执行完 init() 后,将自动执行 start()public void start( ){….. }每当离开 Applet 主页后再返回时,系统会再一次执行 start( ) 方法Start( ) 可被执行多次

Page 14: 第八章  Applet 小应用程序

stop() 方法当用户离开 Applet 所在的页面转到其它页面时, stop( ) 方法被调用public void stop( ){…… }当浏览器又回到 Applet 所在页时,start( ) 方法又会被调用stop( ) 也可被执行多次

Page 15: 第八章  Applet 小应用程序

destroy( )系统在浏览器关闭时才调用 destroy( ) 调用 destroy( ) 方法时,它将负责收回占用的系统资源

Page 16: 第八章  Applet 小应用程序

paintCompoment ( )可用 paintCompoment (Graphics g) 方法在屏幕上输出信息,如文字、色彩、图像等当调用 paintCompoment () 方法时,浏览器产生一个 Graphics 类的实例,并传给方法 paintCompoment (   )中的参数g利用 g可调用 Graphics 类中的方法例 : g.drawString(“x=“+x,10,10)

Page 17: 第八章  Applet 小应用程序

当 applet 对页面有重绘的需求时,如:被其它页面遮挡之后重新放在最前面、改变浏览器的大小、以及 applet 要显示信息 paintCompoment() 方法都会被自动调用

Page 18: 第八章  Applet 小应用程序

PaintCompoment() 方法在 applet 的生命周期内可以被多次调用例:下面的例子统计各方法被执行次数 MethodCount.java

Page 19: 第八章  Applet 小应用程序

public void init()

{initcount=initcount+1;}

public void start()

{startcount=startcount+1;}

public void stop()

{stopcount++;}

public void destroy()

{destroycount++;}

Page 20: 第八章  Applet 小应用程序

public void paint(Graphics g)

{ paintcount++;

g.drawString("initcount ="+initcount,10,20);

g.drawString("startcount ="+startcount,10,40);

g.drawString("stopcount ="+stopcount,10,60);

g.drawString("destroycount="+destroycount,10,80);

g.drawString("paintcount ="+paintcount,10,100); }

Page 21: 第八章  Applet 小应用程序

repaint()你永远不要企图调用 paintCompoment(), 一般可通过调用 repaint() 方法时,实现对 paintCompoment() 的调用, repaint 执行如下 ; 首先清除 paintComponent( ) 方法以前所画内容 再调用 paintCompoment() 方法重画

Page 22: 第八章  Applet 小应用程序

例:一个字符串向下移动的例子 MoveString.java MouseDemo.java

Page 23: 第八章  Applet 小应用程序

8.3Applet 的标记的属性 ---chart.java

一 . 定位属性1.width\height 2.align RIGHT LEFTTOP BOTTOMMIDDLE ABSMIDDLEBASELINE ABSBOTTOM TEXTTOP VSPACE\HSPACE

Page 24: 第八章  Applet 小应用程序

二 . 代码属性 用于告诉浏览器如何定位 applet 代码1.code如果 applet 类位于 com.mycompany 中 ,则:Code=“com/mycompany/Myapplet.class”2.codebase

此属性用于 applet与 HTML 不在同一目录下的情形,如何搜索 class 文件

Page 25: 第八章  Applet 小应用程序

appletTest.class 位于 Myapplet 子目录下,而Myapplet 子目录与 HTML 文件在同一目录下<applet code=“appletTest.class” CODEBASE=“Myapplet” width=200 height=300></applet>

Page 26: 第八章  Applet 小应用程序

三 .接收信息至 applet 中Applet 可以通过使用 HTML 中的 PARAM 标记获得内嵌在 HTML上中的参数 .例:在 HTML 中定义如下:

<applet code=DrawImage.class height=300 width=230><param name=“font” value=“serif”></applet>

Page 27: 第八章  Applet 小应用程序

在 applet 中可使用 JApplet 类中的 getParameter() 来提取参数值Public class FontParameterApplet extends JApplet{ public void init() {String fontName=getParameter(“font”); …….}API : public String getParameter(String name)

例: chart.java

Page 28: 第八章  Applet 小应用程序

8.4 多媒体 8.4.1 显示图象 一 .Java 支持的主要图像类型:   

  GIF    JPEG    BMP

Page 29: 第八章  Applet 小应用程序

定义 Image 对象   Image picture;

从文件加载图像-- getImage() 方法  public Image getImage( URL url, String name)例: picture=getImage( getCodeBase(),”family.jpg”);

二 . 加载图象

Page 30: 第八章  Applet 小应用程序

三 . 显示图像 --DrawImage.java

Graphics 类提供 drawImage() 方法 , 可用来绘制图像public boolean drawImage( Image img, int x,int y, ImageObserver observer)

Page 31: 第八章  Applet 小应用程序

该方法应在 paintComponent() 方法中通过参数 g 调用例: g.drawImage(picture,10,30,this);例:一个加载图像的例子 DrawImage.java

Page 32: 第八章  Applet 小应用程序

可调整宽度和调度的 drawImage()方法public boolean drawImage( Image img, int x,int y,  int width, int height, ImageObserver observer)采用这些方法显示图象时,会自动对图象按指定的高度和宽度进行拉伸

Page 33: 第八章  Applet 小应用程序

Image 类提供了两个方法,常用来和上述方法联合使用:getHetght() 用来获得图象的实际高度getWidth() 用来获得图象的实际宽度例:img.getHeight(this)img.getWidth(this)

Page 34: 第八章  Applet 小应用程序

8.4.2 播放声音一 .播放声音目前 Java 仅支持 AU 、 WAVE 、 MIDI 、 AIFF格式AudioClip 类用来在 Java Applet 中播放声音。该类在 java.Applet.audioClip 中有定义 二 . 加载声音文件创建对象:AudioClip 对象名 ;加载 声音文件 对象名 =getAudioClip( URL url, 文件名)

Page 35: 第八章  Applet 小应用程序

例: AudioClip audio;audio=getAudioClip(getCodebase(

“spacemusic.au”);

三 .播放声音AudioClip 类提供播放方法:play()--播放一遍loop()--循环播放例 : audio.play(); audio.loop();例:一个播放声音的小例子 PicSound.java

Page 36: 第八章  Applet 小应用程序

8.4.3 JMF(Java Media Framwork) Java媒体框架作用: 1 、音频播放 2 、视频播放: avi,gsm,mpg,mov,rmf,rtp,viv 3 、编写摄像头拍照程序

JMF下载地址:http://java.sun.com/products/ java-media/jmf/index.jsp

Page 37: 第八章  Applet 小应用程序

8.4.4 Java 语音 API核心技术:语音识别和语音合成

语音合成: 用于从文本中产生合成的语音语音识别: 从包含语音的音频输入中产生文本

Page 38: 第八章  Applet 小应用程序

Java语音 API 的基本信息:Java.sun.com/products/java-media/speechSUN没有提供 Java语音 API 的实现工具,常用 的是 IBM公司开发的语音软件 FreeTTS.下载地址:prdownloads.sourceforge.net/freetts/freetts-1_1_2.tar.gz?download

Page 39: 第八章  Applet 小应用程序

8.5JAR文件 --Java 存档文件操纵 JAR文件的工具是 jar 程序语法: jar option File1,File2,…...

options:c--创建一个新的空存档文件并且把文件添加至其中f-- 用第二个命令行参数作 JAR文件名v-- 生成详细说明

例: jar cvf jarTest.jar *.class msn.jpg

Page 40: 第八章  Applet 小应用程序

<applet code=DrawImage.class ARCHIVE=“jarTest.jar” height=300 width=230></applet>

指明文件所在位置

set classpath=.;c:\1000;e:\newjava\ch8\ jarTest.jar;

c:\jdk14\lib\rt.jar