JAVA9Applet程序设计.ppt

上传人:sccc 文档编号:5598379 上传时间:2023-07-31 格式:PPT 页数:55 大小:1.23MB
返回 下载 相关 举报
JAVA9Applet程序设计.ppt_第1页
第1页 / 共55页
JAVA9Applet程序设计.ppt_第2页
第2页 / 共55页
JAVA9Applet程序设计.ppt_第3页
第3页 / 共55页
JAVA9Applet程序设计.ppt_第4页
第4页 / 共55页
JAVA9Applet程序设计.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《JAVA9Applet程序设计.ppt》由会员分享,可在线阅读,更多相关《JAVA9Applet程序设计.ppt(55页珍藏版)》请在三一办公上搜索。

1、第9章 Applet程序设计,运行AppletHTML中的Applet标记Applet支持的多媒体技术,Applet,什么是AppletApplet的生命周期,Applet,Applet(Java小应用程序)是能够嵌入到一个HTML页面中,并且可通过Web浏览器下载和执行的一种Java类。Applet不需要main()方法,由Web浏览器中内嵌的Java虚拟机调用执行。application 是从其中的main()方法开始运行的;而applet 是在浏览器中运行的,必须创建一个html 文件,通过编写html 语言代码告诉浏览器载入何种applet 以及如何运行。,Applet,Applet应

2、用程序的运行原理,Applet,Applet的容器特性,appletViewer,为了简化并提高Applet的开发速度,JDK提供了一个浏览Applet的简易工具:appletviewerappletviewer位于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(Co

3、lor.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方式调用可以按如下方式解决:http:/java安全页签中添加file站点配置,file:/”

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

5、各状态之间变化由用户对浏览器的操作而触发。,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主类

6、的实例 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,给引入类对象发送

7、消息,或以某种方式通知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()挂起小应用程序,可释放系统处理资源。不然当浏览者离开一个

8、页面时,小应用程序还将继续运行。但并没有销毁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页中含有

9、Applet的部分被卷入窗口时.b.Applet显示区域在视线内时调整浏览窗口大小、缩放浏览窗口、移动窗口或Reload等需要重绘窗口时都会调用paint()方法.与前几个方法不同的是,paint()中带有一个参数Graphics g,它表明paint()需要引用一个Graphics类的对象实体.在Applet中浏览器会自动创建Graphics对象并将其传送给paint()方法;但编程时应在小应用程序中引入Graphics类所在的包 import java.awt.Graphics;,绘图类,public abstract class Graphics extends Object publi

10、c 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);/填充矩形 publi

11、c 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时,圆 p

12、ublic 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

13、 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

14、,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

15、.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

16、”,applet的URL是主类文件所在的位置,用户计算机上是指的路径,网络上是指的网址。主类文件与HTML所在的目录相同时,省略;不同时,必须使用CODEBASE进行描述。ALT=”alternateText”,当浏览器不支持applet的显示时,则在浏览器上显示alternateText的辅助文本(字符串)。NAME=”instance name”,为applet设置一个符号名称。同一网页上,两个以上的applet要相互参考时,可使用该符号名称定位。,定位标记 ALIGN=”alignment”,applet在网页上的对齐方式。取值有:left、right、top、bottom、absbot

17、tom、middle、absmiddle、texttop、baseline等。VSPACE=”pixels”,设置applet所保留的左右宽度,只在ALIGN设置为left、right时有效。HSPACE=”pixels”,设置applet所保留的上下宽度,只在ALIGN设置为top、bottom时有效。,Applet参数 NAME描述了参数的名字VALUE决定参数的值,值用字符串定义。(一个标记描述一个参数,多个参数由多个标记描述。)参数获取HTML标记定义参数并由applet的代码接收并分析对应的参数。Applet的init()方法中使用getparameter()方法获取参数。getpa

18、rameter()的入口是参数的名字,返回是参数的值。,【例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.dra

19、wString(Name:+name,20,20);g.drawString(Age:+age,20,50);,Applet程序,之后,只要修改HTML文件的参数值,就可以使Applet显示不同字体的不同文本,不需要重新编译Applet程序。,Applet支持的多媒体技术,获得资源文件的地址显示图像播放音频,获得资源文件的地址,Applet支持多媒体时,包含图像、音频等文件,当文件较多时,通常将不同类型的文件分类存放在不同的目录中。问题:HTML文件如何找到嵌入其中的Applet文件 中codebase属性指定Applet文件如何找到它需要用到的图像、音频等文件,获得资源文件的地址,Apple

20、t文件如何找到它需要用到的图像、音频等文件public URL getCodeBase()/返回当前Applet所在的URLpublic URL getDocumentBase()/返回当前Applet所在的HTML文件的URL,图像文本放在Applet目录之下的images目录中,则getCodeBase()+”/images”,Applet 图像处理,Java中可以直接载入并输出的图像文件格式 Gif Jpeg pngApplet的图像是由Image类所创建的对象:Image类是置于java.awt类库中Applet窗口中加载与显示图像的3个操作:1.声明Image类型的变量。2.使用ge

21、tImage()加载图像。3.使用drawImage()绘制图像。,在Applet中加载图像,当载入本地计算机上的图像文件时可采用以下方式:Image getImage(URL url,String name);,如果图像文件和Applet位于同一个目录下面,就可以通过getCodeBase()方法获得地址。,若图像文件和包含Applet的HTML文件位于同一个目录下面,可以使用getDocumentBase()获得基地址。,显示图像,Graphics支持显示图像在paint()方法中,调用Graphics类的drawImage()方法,显示图像public abstract boolean

22、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指当

23、前显示图像的容器对象,用鼠标移动图像的Applet程序import java.awt.*;import java.awt.event.*;import java.applet.Applet;public 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);p

24、ublic 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(Mou

25、seEvent 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()停止播放音乐文件,播放音频,与显示图像相同,首先读入指定音频文件并生成一个Au

26、dioClip对象;在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方法。当播放本地计算机上的声音文

27、件时调用格式如下: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 Appletpublic void paint(Graphics g)g.drawString(音乐欣

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

29、。它能装载指定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;pub

30、lic class Exa8 extends AppletAudioClip Obj_s;,public void init()Obj_s=getAudioClip(getDocumentBase(),music.wav);public void paint(Graphics g)g.drawString(循环播放声音文件!,10,100);public void start()Obj_s.loop();/循环播放音乐 public void stop()Obj_s.stop();/stop()方法停止播放声音文件,程序运行结果如图所示:,/在Applet播放音乐import java.awt

31、.*;import java.awt.event.*;import java.applet.Applet;import java.applet.AudioClip;public class B extends Applet implements ItemListener Image img;AudioClip midi=new AudioClip3;AudioClip current;Choice chc=new Choice();public void init()img=getImage(getCodeBase(),yyp.jpg);midi0=getAudioClip(getCodeBa

32、se(),music1.wav);midi1=getAudioClip(getCodeBase(),music2.wav);midi2=getAudioClip(getCodeBase(),music3.wav);chc.add(music1);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);,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号