《第11章 Java小程序(Applet).ppt》由会员分享,可在线阅读,更多相关《第11章 Java小程序(Applet).ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第11 11章章 Java Java Applet(Applet(Java小程序小程序)11.1 Applet概述11.2 java.applet.Applet类11.3 Applet小程序的设计步骤11.4 在Applet小程序中插入图片11.5 在Applet小程序中播放声音11.6 从网页向Applet小程序传送参数*11.7 Applet的安全限制本章要本章要点点掌握Java小程序(Applet)编写方法掌握Applet四个方法的作用理解Applet生命周期概念掌握在Applet中显示图片、音频等外部资源方法掌握从网页向Applet传递参数的方法11.1 Applet概述概述Appl
2、et是基于Web的Java应用程序,俗称Java小程序Applet程序通常保存在Web服务器中,一旦用户提出申请,可自动被下载至客户端客户端内嵌有Java虚拟机的浏览器可通过通过html文件文件运行运行Applet程序程序Applet程序要在图形界面图形界面中运行由于Applet属于“外来程序”,对它的安全性要求必须十分严格Applet小程序实例小程序实例/Example9_1.javaimport java.applet.*;import java.awt.*;public class Example9_1 extends Applet int x=5;public void init()/
3、对对Applet对象进行初始化对象进行初始化 setForeground(Color.RED);Font f=new Font(宋体宋体,Font.BOLD,28);setFont(f);public void paint(Graphics g)/绘制绘制Applet图形界面图形界面 x=x+1;if(x=200)x=5;g.drawString(我们正在编写我们正在编写Applet小程序小程序,20,x);repaint();for(int i=0;i20000000;i+);说明:说明:在在IE浏览器中打开浏览器中打开Example9_1.html文件文件运行结果如下所示运行结果如下所示(
4、一行字不断从上往下移动一行字不断从上往下移动):程序实例说明程序实例说明Applet小程序中不须定义主方法小程序中不须定义主方法main()因为它的字节代码文件不是通过命令因为它的字节代码文件不是通过命令java.exe启动启动Java虚虚拟机被执行拟机被执行它是通过内嵌在浏览器中的它是通过内嵌在浏览器中的Java虚拟机被运行的。虚拟机被运行的。Applet小程序编写要点:小程序编写要点:程序开头要有import java.aplet.*;和import java.AWT.*;句其主类(即public类)必须是Applet类或Japplet类的子类程序中通常要重写Applet类的init(),
5、start(),stop(),destroy()和paint()方法Applet小程序的小程序的运行过程:运行过程:首先启动浏览器,打开网页文件首先启动浏览器,打开网页文件(*.html)通过通过html文件的文件的标志,链接至标志,链接至Applet程序的字程序的字节代码文件节代码文件启动内嵌于浏览器中的启动内嵌于浏览器中的Java虚拟机,运行虚拟机,运行Applet程序的字程序的字节代码文件节代码文件JDKbin中提供有可执行文件appletviewer.exe,具有类似浏览器的功能,也可用于运行Applet程序。在命令行方式下,键入如下命令,亦可运行上述applet小程序appletvi
6、ewer Example9_1.html在Java源程序文件中添加“/”,再在在命令行方式下,键入如下命令,亦可运行上述applet小程序appletviewer Example9_1.java用于链接Applet字节代码文件的html文件,可以只含有标志html文件只能用于制作静态网页,但Applet程序可用于制作动态网页。早期的Java语言能获得青睐,Applet程序功不可没。11.2 java.applet.Applet类类/Applet 类必须是任何嵌入在类必须是任何嵌入在html页中的页中的 applet 的超类的超类public class Applet extends Panel
7、 publicApplet();publicvoidinit();/初始化方法,由浏览器调用publicvoidstart();/激活方法publicvoidstop();/去活方法publicvoiddestroy();/销毁方法publicStringgetParameter(Stringname);/获取网页参数publicImagegetImage(URLurl,Stringname);/获取图片对象publicAudioClipgetAudioClip(URLurl);/获取音频对象publicstaticfinalAudioClip newAudioClip(URLurl);/创建
8、音频对象11.2.2 Applet生命周期生命周期运行态运行态初始态初始态停止态停止态消亡态消亡态init()start()stop()start()destroy()paint()11.2.1 Applet类主要方法的功能类主要方法的功能Applet类方法都是通过浏览器或appletviewer.exe被调用init():对Applet对象进行初始化。当Applet对象实例装入内存后该方法被调用。该方法只被调用一次start():激活包含该Applet的网页。在init()方法之后,或浏览器重新浏览包含该Applet的网页时该方法被调用stop():去活包含该Applet的网页。当浏览器转去
9、浏览其他网页时该方法被调用destroy():从内存中释放Applet对象实例,及其所占用的资源。当关闭浏览器时该方法被调用paint():绘制Applet图形界面。在start()方法之后或改变网页位置,或缩放网页大小时该方法被调用11.2.3 paint()和和repaint()方法方法publicabstractclassComponentextendsObjectpublicvoidpaint(Graphicsg);/绘图方法publicvoidrepaint();/重新绘图方法说明:说明:Applet类是java.AWT.Component类的孙类,继承了Component类中定义的
10、paint()和repaint()方法init(),start(),stop(),destroy()和paint()方法都是通过IE浏览器内嵌的Java虚拟机或appletviewer.exe被调用的11.2.4 drawString()和和drawImage()方法方法publicabstractclassGraphicsextendsObjectpublicabstractvoiddrawString(Stringstr,intx,inty);/在图形界面的横坐标x,纵坐标y处绘制字符串strpublicabstractbooleandrawImage(Imageimg,intx,inty
11、,ImageObserverobserver);/在图形界面的横坐标x,纵坐标y处绘制图像img,observer表示图像观察者,可用this做为实在参数说明:说明:抽象类Graphics在java.AWT包中drawString()和drawImage()都是在paint()方法中被调用javax.swing.JApplet类类publicclassJApplet extendsAppletimplements.w说明:说明:nJApplet是Applet的子类nApplet在java.applet包中,JApplet在javax.swing包中nApplet属于AWT图形包,JApplet
12、属于Swing图形包nApplet和JApplet类都可做为用户自定义Java小程序类的父类11.3 Applet小程序的设计步骤小程序的设计步骤编辑小程序编辑小程序其public类须是Applet类或JApplet的子类编译小程序编译小程序编辑编辑html文件文件文件中须含标志项运行小程序运行小程序通过浏览器(如IE)调用html文件,继而调用小程序或通过jdk自带的appletviewer.exe运行小程序11.4 在在Applet小程序中插入图片小程序中插入图片Java程序可显示.jpg,.gif等格式的图片通过getImage(URL,String)方法可获取Image对象实例通过调用
13、Graphics抽象类提供的方法drawImage()显示图片在在Applet程序中显示图片的实例程序中显示图片的实例/import java.applet.*;import java.awt.*;public class Example9_4 extends Applet Image imag;/定义图片对象变量定义图片对象变量int x;public void init()imag=getImage(getCodeBase(),step.gif);/获取图片对象实例获取图片对象实例 public void paint(Graphics g)x+=3;if(x=400)x=5;g.drawI
14、mage(imag,x,80,this);/在横坐标在横坐标x,纵坐标纵坐标80处绘制图片处绘制图片repaint();try Thread.sleep(100);catch(InterruptedException e)运行结果运行结果(靴子不断地从左往右迈靴子不断地从左往右迈步步):说明:说明:在在*.java文件的头部加上文件的头部加上/和和/注注释语句后释语句后可用命令可用命令appletviewer*.java运行运行applet小程序小程序11.5 在在Applet小程序中播放声音小程序中播放声音publicinterfaceAudioClipvoidplay();/播放音频voi
15、dloop();/循环播放voidstop();/停止播放Java程序可播放程序可播放.au,.aiff,.wav,.midi,.rfm等格式的音频等格式的音频通过通过getAudioClip(URL,String)或或newAudioClip(URL,String)方法方法可获取可获取java.applet.AudioClip对象实例对象实例通过调用通过调用AudioClip接口提供的方法接口提供的方法play(),loop()和和stop()播放音频播放音频在在Applet小程序中播放声音的实例小程序中播放声音的实例/import java.applet.*;import java.awt
16、.*;public class Example9_5 extends Applet int x=5;AudioClip clip;/声明一个音频对象引用声明一个音频对象引用 public void init()setForeground(Color.RED);Font f=new Font(宋体宋体,Font.BOLD,28);setFont(f);clip=getAudioClip(getCodeBase(),space.au);/获取音频对象实例,与音频文件获取音频对象实例,与音频文件space.au关联关联 public void start()/当网页显示时,反复播放音乐当网页显示时,
17、反复播放音乐 clip.loop();public void stop()/当网页暂停显示时,停放音乐当网页暂停显示时,停放音乐 clip.stop();public void paint(Graphics g)x=x+1;if(x=200)x=5;g.drawString(我们正在编写我们正在编写Applet小程序小程序,20,x);repaint();for(int i=0;i20000000;i+);11.6 从网页向从网页向Applet小程序传送参数小程序传送参数通过在html文件中引入参数(包括属性和属性值)在applet小程序中调用方法getParameter(“property_
18、name”);可将参数property_name的值property_value传给applet小程序从网页向从网页向Applet小程序传送参数的实例小程序传送参数的实例/Example9_6.javaimport java.awt.*;import java.applet.*;public class Example9_6 extends Applet int x=0,y=0;public void init()String s1=getParameter(girl);/从从html得到得到girl的值。的值。String s2=getParameter(boy);/从从html得到得到bo
19、y的值。的值。x=Integer.parseInt(s1);y=Integer.parseInt(s2);setForeground(Color.RED);Font f=new Font(宋体宋体,Font.BOLD,28);setFont(f);public void paint(Graphics g)g.drawString(girl=+x+,+boy=+y,60,120);11.7 Applet的安全限制的安全限制为了避免有人编写带有恶意代码的小程序来控制甚至毁坏浏览网页的客户机,Java对小程序进行了非常严格的安全限制:(1)小程序不能导入其它库或者以其它语言写的代码,小程序只能使用它们自己的代码,以及标准Java库。(2)小程序不能读出或写入客户机的文件,它只能读出以网址形式给出的文件,例如网络上的一副图片。(3)小程序不能与服务器以外的任何主机建立网络连接。这样就保证了小程序不会偷偷连到某个黑客站点或广告站点。(4)小程序不能执行客户机上的任何程序。(5)小程序只能读取客户机上的部分系统信息,这些信息是保证小程序能够运行,同时又不泄露用户隐私的最少信息。(6)用小程序产生的视窗与标准视窗之间有显著区别,小程序视窗的底部有警告信息。实训作业实训作业模仿课件的第一个实例程序,编写输出字符串程序模仿课件的最后一个实例程序,编写从网页向Applet小程序传送字符串参数的程序
限制150内