JAVA9Applet程序设计.ppt_第1页
JAVA9Applet程序设计.ppt_第2页
JAVA9Applet程序设计.ppt_第3页
JAVA9Applet程序设计.ppt_第4页
JAVA9Applet程序设计.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章 Applet程序设计 运行Applet HTML中的Applet标记 Applet支持的多媒体技术 Applet 什么是Applet Applet的生命周期 Applet Applet(Java小应用程序)是能够嵌入到一个 HTML页面中,并且可通过Web浏览器下载和执 行的一种Java类。 Applet不需要main()方法,由Web浏览器中 内嵌的Java虚拟机调用执行。 application 是从其中的main() 方法开始运行的; 而applet 是在浏览器中运行的,必须创建一个html 文 件,通过编写html 语言代码告诉浏览器载入何种 applet 以及如何运行。 Applet Applet应用程序的运行原理 Applet Applet的容器特性 appletViewer 为了简化并提高Applet的开发速度,JDK提供 了一个浏览Applet的简易工具:appletviewer appletviewer位于JDK目录下的bin目录中 在Applet中显示当前日期和时间。 import java.util.Date; import java.awt.*; import java.applet.Applet; public class DateApplet extends Applet public void paint(Graphics g) /在Applet上绘图 g.setColor(Color.red); g.drawString(new Date().toString(),20,20); 超文本文档DataApplet.html 将编译后的字节码文件DataApplet.class嵌入 到超文本文档DataApplet.html中,HTML文 档如下: 当前日期和时间 超文本文档DataApplet.html java applet运行被阻止解决方法 【问题描述】 1.8以上版本的java运行时会对applet小程序运行进 行安全校验,并自动阻止非可信的applet运行 【解决办法】 1、web方式调用可以按如下方式解决: /zh_CN/download/help/jcp_security. xml 2、本地程序被阻止,则在控制面板-程序- java 安全页签中添加file站点配置,“file:/”即可运行 本地所有java applet运行 Applet的 安全性 “沙箱”机制:Java虚拟机为Applet提供能够 良好运行的沙箱,一旦它们试图离开沙箱则会被 禁止。 浏览器禁止Applet执行下列操作: 禁止读写本地计算机的文件系统。 禁止运行任何一个本地可执行文件。 禁止访问用户名、电子邮件地址等与本地计算机有关 的信息。 禁止与除服务器外的任何一台主机通信。 8.2.2 Applet的生命周期 在浏览器中运行的Applet是作为浏览器中的一个线程执行的。 Applet的生命周期与浏览器息息相关,它何时运行、何时结束都 由浏览器控制。 一个Applet对象经历由初始态、运行态、停止态到消亡态的一个 生命周期,各状态之间变化由用户对浏览器的操作而触发。 Applet的状态及状态变化 Applet的生命周期 Java.applet.Applet public void init()public void destroy() public void start() public void stop() public void paint(Graphics g) 2. Applet状态改变时执行的方法 public void init()初始化: 在整个Applet生命周期中,初始化只进行一次. 当第一次浏览含有Applet的WEB页时,浏览器将: a.下载该Applet b.创建对象产生一个该Applet主类的实例 c.调用init()对Applet自身进行初始化 在init()方法中可设置程序初始状态,载入图形或字体 ,获取 HTML中 设定的参数等。 2. Applet状态改变时执行的方法 public void start()启动Applet: 在整个Applet生命周期中,启动可发生多次 在下列情况下,浏览器会调用start()方法: a.Applet第一次载入时. b.离开该Web页后,再次进入时(back,forward). c.Reload该页面时. d.在浏览含有Applet的WEB页时用浏览器右上角缩 放按钮缩放浏览窗口大小时. 在start()方法中可启动一线程来控制Applet,给引入 类对象发送消息,或以某种方式通知Java小应用程序 开始运行. 2. Applet状态改变时执行的方法 public void stop()停止执行Applet: 在整个Applet生命周期中,停止执行可发生多次. 在下列四种情况下,浏览器会调用stop()方法: a.离开Applet所在 Web页时(用back,forward) b.Reload该页面时 c.在浏览含有Applet的WEB页时用浏览器右上角缩放按钮缩放 浏览窗口大小时 d.close该Web页(彻底结束对该页面的访问),exit结束浏览器运 行时(从含有该小应用程序的WEB页退出时) stop()挂起小应用程序,可释放系统处理资源。不然当 浏览者离开一个页面时,小应用程序还将继续运行。但 并没有销毁Applet对象。 2. Applet状态改变时执行的方法 public void destroy()销毁: 销毁Applet对象时,执行destroy()方法,释放占用的 系统资源 在整个Applet生命周期中,退出只发生一次 在彻底结束对该Web页的访问和结束浏览器运行时 (close exit)调用一次 *destroy()是java.applet.Applet类中定义的方法,只能 用于小应用程序 2. Applet状态改变时执行的方法 public void paint(Graphics g)绘制: 可多次发生,浏览器会调用paint()方法: a.Web页中含有Applet的部分被卷入窗口时. b.Applet显示区域在视线内时调整浏览窗口大小、缩放浏览窗口 、移动窗口或Reload等需要重绘窗口时都会调用paint()方法. 与前几个方法不同的是,paint()中带有一个参数Graphics g,它表明paint()需要引用一个Graphics类的对象实体. 在Applet中浏览器会自动创建Graphics对象并将其传送 给paint()方法;但编程时应在小应用程序中引入Graphics 类所在的包 import java.awt.Graphics; 绘图类 public abstract class Graphics extends Object public abstract Color getColor(); /获取当前颜色 public abstract void setColor(Color c); /设置颜色 public abstract void drawLine(int x1, int y1, int x2, int y2); /在两点(x1,y1)、(x2,y2)间画一条直线 public void drawRect(int x, int y, int width, int height) /画矩形 public abstract void fillRect(int x, int y, int width, int height); /填充矩形 public abstract void clearRect(int x, int y, int width, int height); /清除矩形 /(x,y)指定矩形左上角坐标,width、height指定矩形的宽度和高度 public abstract void drawOval(int x, int y, int width, int height); /画椭圆 public abstract void fillOval(int x, int y, int width, int height); /填充椭圆 /(x,y)、width、height指定椭圆外切矩形的左上角坐标、长度和宽度 。当width=height时,圆 public abstract void drawString(String str, int x, int y); /在(x,y)指定坐标位置显示字符串 public abstract Font getFont(); /获得字体 public abstract void setFont(Font font); /设置字体 在组件上绘图 组件绘图方法 public void paint(Graphics g) /在组件上绘制图形 public void repaint() /调用paint()方法刷新图形 重新绘制图形 绘图坐标系 基本的Applet程序 import java.awt.Graphics; import java.applet.*; public class App11_1 extends Applet public void paint(Graphics g) g.drawString(“Hello Applet!“,50,60); Applet 图形绘制 import java.awt.Graphics; import java.applet.*; public class App_2 extends Applet public void paint(Graphics g) g.drawLine(40,30,200,30); g.drawRect(40,50,160,150); g.drawOval(45,55,150,140); g.drawLine(40,220,200,220); g.drawString(“Drawing!“,100,130); 运行结果如图所示 : 绘制图形的Applet程序 import java.awt.*; import java.applet.Applet; public class App_3 extends Applet public void paint(Graphics g) g.setColor(Color.blue); g.fillRect(40,50,160,150); g.setColor(Color.red); g.fillOval(45,55,150,140); g.setColor(Color.orange); g.fillRect(100,90,40,70); 运行结果如图所示: HTML中的标记 /左右宽度 /参数名称和值 /参数名称和值 /参数名称和值 基本标记 CODE=”applet程序名.class” ,CODE包含applet程 序的主类字节码文件,主类文件名与程序名是 一致,“applet程序名.class”真正的含义是 “applet的主类文件名.class”。 WIDTH=” pixels”, applet运行环境的窗口宽度 ,以像素为单位。 HEIGHT=” pixels” ,applet运行环境的窗口高度 ,以像素为单位。 扩充标记 CODEBASE=”URL”,applet的URL是主类文件所在 的位置,用户计算机上是指的路径,网络上是 指的网址。主类文件与HTML所在的目录相同时 ,省略;不同时,必须使用CODEBASE进行描述 。 ALT=”alternateText”,当浏览器不支持applet的 显示时,则在浏览器上显示alternateText的辅助 文本(字符串)。 NAME=”instance name”,为applet设置一个符号 名称。同一网页上,两个以上的applet要相互 参考时,可使用该符号名称定位。 定位标记 ALIGN=”alignment”,applet在网页上的对齐方 式。取值有:left、right、top、bottom、 absbottom、middle、absmiddle、texttop、 baseline等。 VSPACE=”pixels”,设置applet所保留的左右宽度 ,只在ALIGN设置为left、right时有效。 HSPACE=”pixels”,设置applet所保留的上下宽度 ,只在ALIGN设置为top、bottom时有效。 Applet参数 NAME描述了参数的名字 VALUE决定参数的值,值用字符串定义。 (一个标记描述一个参数,多个参数由多个标记描述。) 参数获取 HTML标记定义参数 并由applet的代码接收并分析对应的参数。 Applet的init()方法中使用getparameter()方法获取参 数。getparameter()的入口是参数的名字,返回是参 数的值。 【例8.3】 Applet从HTML中获取参数。 Java程序设计实用教程(第3版) Applet HTML 页 HTML程序 import java.awt.*; public class B extends java.applet.Applet String name; int age=0; public void init() name=getParameter(“name“); String a=getParameter(“age“); age=Integer.parseInt(a); public void paint(Graphics g) g.drawString(“Name:“+name,20,20); g.drawString(“Age:“+age,20,50); Applet程序 之后,只要修改HTML文件的参数值,就可以 使Applet显示不同字体的不同文本,不需要重 新编译Applet程序。 Applet支持的多媒体技术 获得资源文件的地址 显示图像 播放音频 获得资源文件的地址 Applet支持多媒体时,包含图像、音频等文件,当 文件较多时,通常将不同类型的文件分类存放在不 同的目录中。 问题: HTML文件如何找到嵌入其中的Applet文件 中codebase属性指定 Applet文件如何找到它需要用到的图像、音频等文件 获得资源文件的地址 Applet文件如何找到它需要用到的图像、音频等文 件 public URL getCodeBase() /返回当前Applet所在的URL public URL getDocumentBase() /返回当前Applet所在的HTML文件的URL 图像文本放在Applet目录之下的images目录中,则 getCodeBase()+”/ images” Applet 图像处理 Java中可以直接载入并输出的图像文件格 式 Gif Jpeg png Applet的图像是由Image类所创建的对象: Image类是置于java.awt类库中 Applet窗口中加载与显示图像的3个操作: 1. 声明Image类型的变量。 2. 使用getImage()加载图像。 3. 使用drawImage()绘制图像。 在Applet中加载图像 当载入本地计算机上的图像文件时可采用以下方式: Image getImage(URL url,String name); 如果图像文件和Applet位于同一个目录下面,就可 以通过getCodeBase()方法获得地址。 若图像文件和包含Applet的HTML文件位于同一个目 录下面,可以使用getDocumentBase()获得基地址。 显示图像 Graphics支持显示图像 在paint()方法中,调用Graphics类的 drawImage()方法,显示图像 public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer); Applet窗口中加载图像 import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class App_5 extends Applet Image img; public void init() img=getImage(getCodeBase(),“App_5.jpg“); public void paint(Graphics g) g.drawImage(img, 0, 0,this); this指当前显示图像的容器对象 用鼠标移动图像的Applet程序 import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class B extends Applet implements MouseMotionListener,MouseListener Image img; int x=70,y=60; public void init() img=getImage(getCodeBase(),“YYP.jpg“); addMouseListener(this); addMouseMotionListener(this); public void mouseDragged(MouseEvent e) x=e.getX(); y=e.getY(); Graphics g=getGraphics(); update(g); public void paint(Graphics g) g.drawImage(img,x,y,120,60,this); public void mouseMoved(MouseEvent e); public void mousePressed(MouseEvent e); public void mouseReleased(MouseEvent e); public void mouseEntered(MouseEvent e); public void mouseExited(MouseEvent e); public void mouseClicked(MouseEvent e); Applet 声音技术 Java支持声音文件格式: Java 2支持“.au”、“.aif”、“.midi”、“.wav” “.rfm”等 格式的音频文件。 在Applet中使用java.applet类库里的AudioClip接 口就可以播放声音。 AudioClip接口定义了3个方法: loop()循环播放音乐文件 play()播放音乐文件 stop()停止播放音乐文件 播放音频 与显示图像相同,首先读入指定音频文件并生成 一个AudioClip对象; 在Applet中装入音频对象 public AudioClip getAudioClip(URL url1, String filename) public AudioClip getAudioClip(URL url2) 然后调用AudioClip的play()和stop()等方法控 制音频的播放和停止; Applet类中直接播放音频的方法 public void play(URL url1, String filename) public void play(URL url2) 实例 在Applet中加载数字音频 播放方式: 1. 通过Applet类的play方法。 当播放本地计算机上的声音文件时调用格式如下: void play(URL url,String name); 1)当声音文件和applet文件存放在同一目录下时, 可以通过方法 getCodeBase()返回当前Applet所在的URL 。 2)当声音文件和包含Applet的HTML文件位于同一 个目录下面时,可以通过方法 getDocumentBase()获得基地址。 【例】 import java.awt.Graphics; import java.applet.Applet; public class Exa8_8 extends Applet public void paint(Graphics g) g.drawString(“音乐欣赏“,20,30); play(getDocumentBase(),“music.au“); 播放当前路径下的“music.au“声音文件 对应的HTML文件Audio.HTML内容如下: 程序运行结果如图所示: 问题: 1.play()方法只能将声音播放一次。 2.调用play()方法装载并播放声音文件时,若找 不到指定的声音文件,则无法听到声音,但不 会产生异常。 在Applet中加载数字音频 播放方式: 2.通过AudioClip类中的方法播放。 AudioClip类包含在java.applet类库中,其播 放功能更为强大。为了得到AudioClip对象,可以 调用Applet类中的getAudioClip()方法。它能装 载指定URL的声音文件,并返回一个AudioClip对 象。 在Applet中加载数字音频 当播放本地计算机上的声音文件时调用格式如下: AudioClip getAudioClip(URL url,String name); 创建了AudioClip对象后,声音文件就可以装载 了,可调用它的方法处理声音文件。 AudioClip只有3种方法: void play() 播放一遍 void loop() 连续播放 void stop() 停止播放 【例】 import java.awt.Graphics; import java.applet.*; import java.applet.AudioClip; public class Exa8 extends Applet AudioClip Obj_s; public voi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论