applet n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第八章  Applet 小应用程序 PowerPoint Presentation
Download Presentation
第八章  Applet 小应用程序

Loading in 2 Seconds...

play fullscreen
1 / 40

第八章  Applet 小应用程序 - PowerPoint PPT Presentation


  • 261 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

第八章  Applet 小应用程序


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
8 1 applet
8.1 applet基础

在浏览器内运行的java程序

applet仍然要比HTML、XML以及脚本技术的任意组合强大的多

跨平台

很安全

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

当applet刚被开发出来时,只有sun的HotJava能查看包含applet的网页当applet刚被开发出来时,只有sun的HotJava能查看包含applet的网页

Netscape 、IE的加入,使得applet真正流行起来

仅支持Java1.1的大部分功能

解决方法:Java插件

Java2 SDK 自动下载插件

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

二.Applet的运行

  • applet必须嵌入HTML文件中方可执行,因此HTML页必须告诉浏览器需加载哪个applet及在网页中的位置

<applet code=字节码文件名

width=n height=n>

</applet>

例:

<applet code=DrawImage.class

width=200 height=300>

</applet>

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

可将applet标记作为注释添加到源程序中:

  • /*
  • <applet code=Not.class width=200 height=300>
  • </applet> */
  • public class Not extends JApplet
  • {…. }
  • 然后用appletviewer来直接运行名为Not.java的源程序
  • appletviewer Not.java
  • 例:Not.java
slide8
三.JApplet类
  • JApplet(Applet)类是所有applet的基类,所有的小应用程序都是该类的子类
  • import java.applet.*;
  • public class Testapplet extends JApplet
  • {….
  • }
slide9

常用方法:

判断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)

slide10

播放声音、显示图象、输出字符串方法

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( )

8 2 applet
8.2一个applet的生存周期
  • public class classname extends JApplet
  • {public void init()
  • {…………. }
  • public void start()
  • {………. }
  • public void stop( )
  • {………… }
  • public void destroy( )
  • {…………. }
  • public void paintComponent(Graphics g)
  • {………… }
  • ……………. }
  • JApplet中常用的几种常用方法
slide12
init( )
  • 当一个applet被系统执行时,系统将首先自动执行init( )方法
  • 通常用init( )方法作一些初始化工作。如:创建对象、设置初始状态、加载图象等
  • public void init( )
  • {…… }
  • Init()方法只能被执行一次
slide13
start( )
  • 系统在执行完init()后,将自动执行start()
  • public void start( )
  • {….. }
  • 每当离开Applet主页后再返回时,系统会再一次执行start( )方法
  • Start( ) 可被执行多次
slide14
stop()方法
  • 当用户离开Applet所在的页面转到其它页面时,stop( )方法被调用
  • public void stop( )
  • {…… }
  • 当浏览器又回到Applet所在页时,start( )方法又会被调用
  • stop( )也可被执行多次
slide15

destroy( )

  • 系统在浏览器关闭时才调用destroy( )
  • 调用destroy( )方法时,它将负责收回占用的系统资源
slide16
paintCompoment ( )
  • 可用paintCompoment (Graphics g)方法在屏幕上输出信息,如文字、色彩、图像等
  • 当调用paintCompoment ()方法时,浏览器产生一个Graphics类的实例,并传给方法paintCompoment ()中的参数g
  • 利用g可调用Graphics类中的方法
  • 例: g.drawString(“x=“+x,10,10)
slide18
PaintCompoment()方法在applet的生命周期内可以被多次调用PaintCompoment()方法在applet的生命周期内可以被多次调用
  • 例:下面的例子统计各方法被执行次数
  • MethodCount.java
slide19

public void init()

{initcount=initcount+1;}

public void start()

{startcount=startcount+1;}

public void stop()

{stopcount++;}

public void destroy()

{destroycount++;}

slide20

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); }

slide21

repaint()

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

例:一个字符串向下移动的例子

  • MoveString.java
  • MouseDemo.java
slide23
8.3Applet的标记的属性---chart.java
  • 一.定位属性
  • 1.width\height
  • 2.align
  • RIGHT LEFT
  • TOP BOTTOM
  • MIDDLE ABSMIDDLE
  • BASELINE ABSBOTTOM
  • TEXTTOP VSPACE\HSPACE
slide24

二.代码属性

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

2.codebase

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

slide25

appletTest.class位于Myapplet子目录下,而Myapplet子目录与HTML文件在同一目录下appletTest.class位于Myapplet子目录下,而Myapplet子目录与HTML文件在同一目录下

<applet code=“appletTest.class”

CODEBASE=“Myapplet”

width=200 height=300>

</applet>

slide26

三.接收信息至applet中

  • Applet可以通过使用HTML中的PARAM标记获得内嵌在HTML上中的参数.
  • 例:在HTML中定义如下:

<applet code=DrawImage.class

height=300 width=230>

<param name=“font” value=“serif”>

</applet>

slide27

在applet中可使用JApplet类中的

  • getParameter()来提取参数值
  • Public class FontParameterApplet
  • extends JApplet
  • {
  • public void init()
  • {String fontName=getParameter(“font”);
  • …….}
  • API:public String getParameter(String name)
  • 例:chart.java
slide28
8.4多媒体
  • 8.4.1 显示图象
  • 一.Java支持的主要图像类型:
  • GIF
  • JPEG
  • BMP
slide29

二.加载图象

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

三.显示图像--DrawImage.java

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

该方法应在paintComponent()方法中通过参数g调用

  • 例:g.drawImage(picture,10,30,this);
  • 例:一个加载图像的例子DrawImage.java
slide32

可调整宽度和调度的drawImage()方法

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

Image类提供了两个方法,常用来和上述方法联合使用:Image类提供了两个方法,常用来和上述方法联合使用:

  • getHetght()用来获得图象的实际高度
  • getWidth()用来获得图象的实际宽度

例:

  • img.getHeight(this)
  • img.getWidth(this)
slide34

8.4.2 播放声音

一.播放声音

目前Java仅支持AU、WAVE、MIDI、AIFF格式

  • AudioClip类用来在Java Applet中播放声音。该类在java.Applet.audioClip中有定义 
  • 二.加载声音文件
  • 创建对象:
  • AudioClip 对象名;
  • 加载 声音文件
  • 对象名=getAudioClip(URL url,文件名)
audioclip play loop audio play audio loop
三.播放声音AudioClip类提供播放方法:play()--播放一遍loop()--循环播放例: audio.play(); audio.loop();
  • 例:AudioClip audio;
  • audio=getAudioClip(getCodebase(
    • “spacemusic.au”);

例:

一个播放声音的小例子PicSound.java

slide36
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

slide37

8.4.4 Java 语音API

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

语音合成:

用于从文本中产生合成的语音

语音识别:

从包含语音的音频输入中产生文本

slide38

Java语音API的基本信息:

Java.sun.com/products/java-media/speech

SUN没有提供Java语音API的实现工具,常用 的是IBM公司开发的语音软件FreeTTS.

下载地址:

prdownloads.sourceforge.net/freetts/freetts-1_1_2.tar.gz?download

slide39

8.5JAR文件--Java存档文件

操纵JAR文件的工具是jar程序

语法:jar option File1,File2,…...

options:

c--创建一个新的空存档文件并且把文件添加至其中

f--用第二个命令行参数作JAR文件名

v--生成详细说明

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

slide40

<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