java教程-6-小应用程序_第1页
java教程-6-小应用程序_第2页
java教程-6-小应用程序_第3页
java教程-6-小应用程序_第4页
java教程-6-小应用程序_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第六章Applet小应用程序6.1applet基础在浏览器内运行的java程序applet仍然要比HTML、XML以及脚本技术的任意组合强大的多跨平台很安全

当applet刚被开发出来时,只有sun的HotJava能查看包含applet的网页Netscape、IE的加入,使得applet真正流行起来仅支持Java1.1的大部分功能解决方法:Java插件Java2SDK自动下载插件一.什么是Japplet(Applet)一个Javaapplet程序中必须有一个类是JApplet类的子类,称该子类为Javaapplet的主类例:publicclassDrawImageextendsJApplet主类必须用public来修饰主类的实例是一个容器二.Applet的运行applet必须嵌入HTML文件中方可执行,因此HTML页必须告诉浏览器需加载哪个applet及在网页中的位置<appletcode=字节码文件名width=nheight=n></applet>例:<appletcode=DrawImage.classwidth=200height=300></applet>Applet可在浏览器下运行

c:\1000\boy.html也可用JDK的开发工具中的appletviewer工具浏览Applet效果

c:\1000\appletviewerboy.html如果一个HTML文件中包含多个applet,那么运行时,将会弹出多个窗口三.JApplet类JApplet(Applet)类是所有applet的基类,所有的小应用程序都是该类的子类importjava.applet.*;publicclassTestappletextendsJApplet{….}

Applet类中常用方法:判断applet是否处于激活状态publicbooleanisactive()文件定位方法publicURLgetCodeBase()publicImagegetImage(URLurl)publicImagegetImage(URLurl,Stringname)publicAudioClipgetAudioClip(URLurl)publicAudioClipgetAudioClip(URLurl,Stringname)

播放声音、显示图象、输出字符串方法publicvoidplay(URLurl)publicvoidloop(URLurl)publicvoiddrawImage(img,x,y)publicvoiddrawString(str,x,y)applet构成方法publicvoidinit()publicvoidstart()publicvoidstop()publicvoiddestroy()publicvoidpaintComponent()publicvoidrepaint()

6.2一个applet的生存周期JApplet中常用的几种常用方法publicclassclassnameextendsJApplet{publicvoidinit(){………….}publicvoidstart(){……….}publicvoidstop(){…………}publicvoiddestroy(){………….}publicvoidpaintComponent(Graphicsg){…………}…………….}init()

当一个applet被系统执行时,系统将首先自动执行init()方法通常用init()方法作一些初始化工作。如:创建对象、设置初始状态、加载图象等publicvoidinit(){……}Init()方法只能被执行一次

start()系统在执行完init()后,将自动执行start()publicvoidstart(){…..}每当离开Applet主页后再返回时,系统会再一次执行start()方法Start()可被执行多次stop()方法当用户离开Applet所在的页面转到其它页面时,stop()方法被调用publicvoidstop(){……}当浏览器又回到Applet所在页时,start()方法又会被调用stop()也可被执行多次destroy()系统在浏览器关闭时才调用destroy()调用destroy()方法时,它将负责收回占用的系统资源paintCompoment()可用paintCompoment(Graphicsg)方法在屏幕上输出信息,如文字、色彩、图像等当调用paintCompoment()方法时,浏览器产生一个Graphics类的实例,并传给方法paintCompoment()中的参数g利用g可调用Graphics类中的方法例:g.drawString(“x=“+x,10,10)当applet对页面有重绘的需求时,如:被其它页面遮挡之后重新放在最前面、改变浏览器的大小、以及applet要显示信息paintCompoment()方法都会被自动调用PaintCompoment()方法在applet的生命周期内可以被多次调用例:下面的例子统计各方法被执行次数MethodCount.javapublicvoidinit(){initcount=initcount+1;}publicvoidstart(){startcount=startcount+1;}publicvoidstop(){stopcount++;}publicvoiddestroy(){destroycount++;}publicvoidpaint(Graphicsg){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);}repaint()永远不要企图调用paintCompoment(),一般可通过调用repaint()方法时,实现对paintCompoment()的调用.首先清除paintComponent()方法以前所画内容再调用paintCompoment()方法重画repaint执行如下:6.3Applet的标记的属性---chart.java一.定位属性1.width\height2.align—这个属性指定applet的对齐方式RIGHTLEFTTOPBOTTOMMIDDLEABSMIDDLEBASELINEABSBOTTOMTEXTTOPVSPACE\HSPACE二.代码属性用于告诉浏览器如何定位applet代码1.code如果applet类位于与HTML在同一文件夹中,则:Code=“Myapplet.class”如果applet类位于com.mycompany中,而com/mycompany与HTML在同一文件夹中,则:Code=“com/mycompany/Myapplet.class”appletTest.class位于Myapplet子目录下,而Myapplet子目录与HTML文件在同一目录下<appletcode=“appletTest.class”CODEBASE=“Myapplet”width=200height=300></applet>2.codebase此属性用于applet与HTML不在同一目录下的情形,如何搜索class文件三.接收信息至applet中Applet可以通过使用HTML中的PARAM标记获得内嵌在HTML中的参数.例:在HTML中定义如下:<appletcode=DrawImage.classheight=300width=230><paramname=“font”value=“serif”></applet>

在applet中可使用JApplet类中的

getParameter()来提取参数值PublicclassFontParameterApplet

extendsJApplet{publicvoidinit(){StringfontName=getParameter(“font”);…….}API:publicStringgetParameter(Stringname)例:chart.java<PARAMNAME="title"VALUE="DiametersofthePlanets"><PARAMNAME="values"VALUE="9"><PARAMNAME="name_1"VALUE="Mercury"><PARAMNAME="name_2"VALUE="Venus"><PARAMNAME="name_3"VALUE="Earth"><PARAMNAME="name_4"VALUE="Mars">………..<PARAMNAME="value_1"VALUE="31000"><PARAMNAME="value_2"VALUE="70500"><PARAMNAME="value_3"VALUE="8000"><PARAMNAME="value_4"VALUE="4200">……….

for(i=0;i<n;i++){values[i]=Double.parseDouble(getParameter("value_"+(i+1)));names[i]=getParameter("name_"+(i+1));}

Stringv=getParameter("values");if(v==null)return;intn=Integer.parseInt(v);double[]values=newdouble[n];String[]names=newString[n];6.4多媒体6.4.1显示图象一.Java支持的主要图像类型:

GIFJPEGBMP定义Image对象

Imagepicture;从文件加载图像--getImage()方法

publicImagegetImage(URLurl,Stringname)二.加载图象例:picture=getImage(

getCodeBase(),”family.jpg”);三.显示图像--DrawImage.javaGraphics类提供drawImage()方法,可用来绘制图像publicboolean

drawImage(Imageimg,

int

x,inty,

ImageObserverobserver)

该方法应在paintComponent()方法中通过参数g调用例:g.drawImage(picture,10,30,this);例:一个加载图像的例子DrawImage.java

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

drawImage(Imageimg,

int

x,inty,

intwidth,

intheight,

ImageObserverobserver)采用这些方法显示图象时,会自动对图象按指定的高度和宽度进行拉伸

Image类提供了两个方法,常用来和上述方法联合使用:getHetght()用来获得图象的实际高度getWidth()用来获得图象的实际宽度例:img.getHeight(this)img.getWidth(this)

6.4.2播放声音一.播放声音目前Java仅支持AU、WAVE、MIDI、AIFF格式AudioClip类用来在JavaApplet中播放声音。该类在java.Applet.audioClip中有定义加载声音文件对象名=getAudioClip(URLurl,文件名)创建对象:AudioClip

对象名;二.加载声音文件例:AudioClipaudio;audio=getAudioClip(getCodebase(“spacemusic.au”);三.播放声音

AudioClip类提供播放方法:

play()--播放一遍

loop()--循环播放

例:audio.play();

audio.loop();例:一个播放声音的小例子PicSound.java6.4.3JMF(JavaMediaFramwork)Java媒体框架作用:1、音频播放2、视频播放:avi,gsm,mpg,mov,r

温馨提示

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

评论

0/150

提交评论