JAVA9Applet程序设计

上传人:仙*** 文档编号:43938588 上传时间:2021-12-05 格式:PPT 页数:55 大小:1.23MB
收藏 版权申诉 举报 下载
JAVA9Applet程序设计_第1页
第1页 / 共55页
JAVA9Applet程序设计_第2页
第2页 / 共55页
JAVA9Applet程序设计_第3页
第3页 / 共55页
资源描述:

《JAVA9Applet程序设计》由会员分享,可在线阅读,更多相关《JAVA9Applet程序设计(55页珍藏版)》请在装配图网上搜索。

1、第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 以及如何运行。 AppletApp

2、let应用程序的运行原理Applet Applet的容器特性java.lang.ObjectComponent组件类Color颜色类Font字体类Container容器类BorderLayoutFlowLayoutGridLayout布局管理器类TextComponent文本组件类Graphics图形类Label标签类Button按钮类TextArea文本区类TextField文本行类Panel面板类FileDialog文件对话框类java.applet.AppletDialog对话框类Frame框架类Window窗口类appletViewer 为了简化并提高Applet的开发速度,JDK提供

3、了一个浏览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); 超文本文档DataAp

4、plet.html 将编译后的字节码文件DataApplet.class嵌入到超文本文档DataApplet.html中,HTML文档如下:当前日期和时间超文本文档DataApplet.htmljava applet运行被阻止解决方法 【问题描述】 1.8以上版本的java运行时会对applet小程序运行进行安全校验,并自动阻止非可信的applet运行【解决办法】 1、web方式调用可以按如下方式解决:http:/ 2、本地程序被阻止,则在控制面板-程序- java安全页签中添加file站点配置,file:/”即可运行本地所有java applet运行Applet的 安全性 “沙箱”机制:Ja

5、va虚拟机为Applet提供能够良好运行的沙箱,一旦它们试图离开沙箱则会被禁止。 浏览器禁止Applet执行下列操作: 禁止读写本地计算机的文件系统。 禁止运行任何一个本地可执行文件。 禁止访问用户名、电子邮件地址等与本地计算机有关的信息。 禁止与除服务器外的任何一台主机通信。8.2.2 Applet的生命周期在浏览器中运行的Applet是作为浏览器中的一个线程执行的。Applet的生命周期与浏览器息息相关,它何时运行、何时结束都由浏览器控制。一个Applet对象经历由初始态、运行态、停止态到消亡态的一个生命周期,各状态之间变化由用户对浏览器的操作而触发。Applet的状态及状态变化Apple

6、t的生命周期Java.applet.Appletpublic 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()方法中可设置程序初

7、始状态,载入图形或字体,获取 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状态改变

8、时执行的方法 public void stop()停止执行Applet: 在整个Applet生命周期中,停止执行可发生多次. 在下列四种情况下,浏览器会调用stop()方法: a.离开Applet所在 Web页时(用back,forward) b.Reload该页面时 c.在浏览含有Applet的WEB页时用浏览器右上角缩放按钮缩放浏览窗口大小时 d.close该Web页(彻底结束对该页面的访问),exit结束浏览器运行时(从含有该小应用程序的WEB页退出时) stop()挂起小应用程序,可释放系统处理资源。不然当浏览者离开一个页面时,小应用程序还将继续运行。但并没有销毁Applet对象。2.

9、 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显示

10、区域在视线内时调整浏览窗口大小、缩放浏览窗口、移动窗口或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

11、(); /获取当前颜色 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

12、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时,

13、圆 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()方法刷新图形 重新绘制图形 绘图坐标系(x,y)X 轴Y 轴(0,0)基本的Applet程序import

14、 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.dr

15、awRect(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)

16、; 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运行环境的窗口宽度,

17、以像素为单位。 HEIGHT=” pixels” ,applet运行环境的窗口高度,以像素为单位。 扩充标记 CODEBASE=”URL”,applet的URL是主类文件所在的位置,用户计算机上是指的路径,网络上是指的网址。主类文件与HTML所在的目录相同时,省略;不同时,必须使用CODEBASE进行描述。 ALT=”alternateText”,当浏览器不支持applet的显示时,则在浏览器上显示alternateText的辅助文本(字符串)。 NAME=”instance name”,为applet设置一个符号名称。同一网页上,两个以上的applet要相互参考时,可使用该符号名称定位。 定

18、位标记 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决定参数的值,值用字符串定义。(一个标记描述一个参数,多个参数由多个标记描述。) 参数获取 H

19、TML标记定义参数 并由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

20、 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支持多媒体时,包含图像、音频等文件,当文件较多时,通常将不同类型的文件分类存放在不同的目录中。

21、 问题: HTML文件如何找到嵌入其中的Applet文件 中codebase属性指定 Applet文件如何找到它需要用到的图像、音频等文件获得资源文件的地址 Applet文件如何找到它需要用到的图像、音频等文件 public URL getCodeBase() /返回当前Applet所在的URL public URL getDocumentBase() /返回当前Applet所在的HTML文件的URL图像文本放在Applet目录之下的images目录中,则getCodeBase()+”/ images”Applet 图像处理图像处理 Java中可以直接载入并输出的图像文件格式 Gif Jpeg

22、 png Applet的图像是由Image类所创建的对象: Image类是置于java.awt类库中 Applet窗口中加载与显示图像的3个操作: 1. 声明Image类型的变量。 2. 使用getImage()加载图像。 3. 使用drawImage()绘制图像。 在Applet中加载图像 当载入本地计算机上的图像文件时可采用以下方式:当载入本地计算机上的图像文件时可采用以下方式:Image getImage(URL url,String name);如果图像文件和如果图像文件和Applet位于同一个目录下面,就可位于同一个目录下面,就可以通过以通过getCodeBase()方法获得地址。方

23、法获得地址。 若图像文件和包含若图像文件和包含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.*;im

24、port 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;publ

25、ic class B extends Applet implements MouseMotionListener,MouseListenerImage 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(); updat

26、e(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(MouseEv

27、ent 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 f

28、ilename) 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)当声

29、音文件和)当声音文件和applet文件存放在同一目录下时,文件存放在同一目录下时,可以通过方法可以通过方法 getCodeBase()返回当前返回当前Applet所在的所在的URL。2)当声音文件和包含)当声音文件和包含Applet的的HTML文件位于同一文件位于同一个目录下面时,可以通过方法个目录下面时,可以通过方法getDocumentBase()获得基地址。获得基地址。 【例】import java.awt.Graphics;import java.applet.Applet;public class Exa8_8 extends Appletpublic void paint(Grap

30、hics g) g.drawString(音乐欣赏,20,30);play(getDocumentBase(),music.au); 播放当前路径下的music.au声音文件对应的HTML文件Audio.HTML内容如下: 程序运行结果如图所示:问题:1.play()方法只能将声音播放一次。2.调用play()方法装载并播放声音文件时,若找不到指定的声音文件,则无法听到声音,但不会产生异常。在Applet中加载数字音频 播放方式:播放方式:2.通过通过AudioClip类中的方法播放。类中的方法播放。 AudioClip类包含在类包含在java.applet类库中,其播类库中,其播放功能更为强

31、大。为了得到放功能更为强大。为了得到AudioClip对象,可以对象,可以调用调用Applet类中的类中的getAudioClip()方法。它能装方法。它能装载指定载指定URL的声音文件,并返回一个的声音文件,并返回一个AudioClip对对象。象。 在Applet中加载数字音频 当播放本地计算机上的声音文件时调用格式如下:当播放本地计算机上的声音文件时调用格式如下:AudioClip getAudioClip(URL url,String name); 创建了创建了AudioClip对象后,声音文件就可以装对象后,声音文件就可以装载了,可调用它的方法处理声音文件。载了,可调用它的方法处理声音

32、文件。AudioClip只有只有3种方法:种方法:void play() 播放一遍播放一遍void loop() 连续播放连续播放void stop() 停止播放停止播放【例】import java.awt.Graphics;import java.applet.*;import java.applet.AudioClip;public class Exa8 extends AppletAudioClip Obj_s; public void init()Obj_s=getAudioClip(getDocumentBase(),music.wav); public void paint(Gra

33、phics g)g.drawString(循环播放声音文件!,10,100); public void start()Obj_s.loop();/循环播放音乐 public void stop()Obj_s.stop();/stop()方法停止播放声音文件 程序运行结果如图所示:/在Applet播放音乐import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.applet.AudioClip; public class B extends Applet implements ItemListe

34、ner Image img; AudioClip midi=new AudioClip3; AudioClip current; Choice chc=new Choice(); public void init() img=getImage(getCodeBase(),yyp.jpg); midi0=getAudioClip(getCodeBase(),music1.wav); midi1=getAudioClip(getCodeBase(),music2.wav); midi2=getAudioClip(getCodeBase(),music3.wav); chc.add(music1);

35、 chc.add(music2); chc.add(music3); add(chc); chc.addItemListener(this);current=midi0; current.play(); int index; public void itemStateChanged(ItemEvent e) repaint(); current.stop(); index=chc.getSelectedIndex(); current=midiindex; current.play(); public void paint(Graphics g) g.drawImage(img,0,0,200,200,this);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!