java程序设计教程-第9章-Applet_第1页
java程序设计教程-第9章-Applet_第2页
java程序设计教程-第9章-Applet_第3页
java程序设计教程-第9章-Applet_第4页
java程序设计教程-第9章-Applet_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

第9章Applet小程序开发本章学习目标熟悉Applet技术。掌握Applet开发步骤。理解Applet小程序的生命周期。掌握Graphics类的用法。Applet概述Applet技术一出现,互联网立刻焕发出无限的生机,因为Applet不仅可以生成绚丽多彩的Web页面、进行良好的人机交互,同时还能处理图形图像、声音、视频和动画等多媒体数据,随即它吸引了全世界编程者的目光,Java语言也正因此炽热流行起来,可见Applet在Java的开展过程中起到不可估量的推动作用。Applet开发步骤Applet的开发步骤大致可以分为以下三个步骤:〔1〕用UltraEdit或Notepad等纯文本软件编辑JavaApplet源程序。〔2〕利用javac编译器将Applet源程序转换成class字节码文件。〔3〕编写HTML页面,并通过<APPLET></APPLET>标签引用上述字节码文件。一个简单的例子importjava.awt.*;importjava.applet.*;publicclassHelloAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString("Hello!",10,10);g.drawString("WelcometoAppletProgramming!",30,30);}}HTML网页<HTML><TITLE>HelloApplet</TITLE><APPLETCODE="HelloApplet.class"WIDTH=300HEIGHT=300></APPLET></HTML>嵌入网页效果Applet技术解析Applet类是用户编写的applet小程序的基类,该基类的继承关系如以下图所示。Applet生命周期Applet小程序的生命周期相对于Application而言较为复杂。在其生命周期中涉及到Applet类的四个方法:init〔〕、start〔〕、stop〔〕和destroy〔〕,Applet的生命周期中有相对应的四个状态:初始态、运行态、停止态和消亡态。当程序执行完init〔〕方法以后,Applet小程序就进入了初始态;然后立刻执行start〔〕方法,Applet小程序进入运行态;当Applet小程序所在的浏览器图标化或者是转入其它页面时,该Applet小程序立刻执行stop〔〕方法,使Applet小程序进入停止态;在停止态中,如果浏览器又重新加载该Applet小程序所在的页面,或者是浏览器从图标中复原,那么Applet小程序又会调用start〔〕方法,进入运行态;不过,在停止态时,假设浏览器被关闭,那么Applet小程序会调用destroy〔〕方法,使其进入消亡态。paint〔〕方法Applet小程序的窗口绘制通常是由paint〔〕方法来完成的。paint〔〕方法在小程序执行后会被自行调用,并且以后在遇到窗口缩小化后再恢复或者被其他窗口遮挡后再恢复情形,它都会被自动调用,以重新绘制窗口。paint〔〕方法包含一个Graphics类的参数对象,这个对象可以被用来输出文本、绘制图形、显示图像等。该方法的格式如下:publicvoidpaint(Graphicsg){//编写代码}Applet多媒体编程-文字importjava.awt.*;importjava.applet.*;publicclassTextAppletextendsApplet{Fontf1=newFont("TimesNewRoman",Font.PLAIN,12);Fontf2=newFont("宋体",Font.BOLD,24);Fontf3=newFont("黑体",Font.BOLD,36);Colorc1=newColor(255,0,0);//红色Colorc2=newColor(0,255,0);//绿色Colorc3=newColor(0,0,255);//蓝色publicvoidpaint(Graphicsg){g.setFont(f1);g.setColor(c1);g.drawString("TimesNewRoman",20,30);g.setFont(f2);g.setColor(c2);g.drawString("宋体",20,60);g.setFont(f3);g.setColor(c3);g.drawString("黑体",20,120);}}Applet多媒体编程-图形importjava.awt.*;importjava.applet.*;publicclassLineAppletextendsApplet{publicvoidpaint(Graphicsg){intx1,y1,x2,y2;x1=10;y1=10;x2=100;y2=100;g.drawLine(x1,y1,x2,y2);}}Applet多媒体编程-图形importjava.awt.*;importjava.applet.*;publicclassRectAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawRect(10,10,60,60);g.fillRect(80,10,60,60);}}Applet多媒体编程-图形importjava.awt.*;importjava.applet.*;publicclassPolyAppletextendsApplet{publicvoidpaint(Graphicsg){intx[]={30,90,100,140,50,60,30};inty[]={30,70,40,70,100,80,100};intpts=x.length;g.drawPolygon(x,y,pts);}}importjava.applet.*;publicclassLampAppletextendsApplet{publicvoidpaint(Graphicsg){//绘制灯上的黑点g.fillArc(78,120,40,40,63,-174);g.fillArc(173,100,40,40,110,180);g.fillOval(120,96,40,40);//绘制灯的上下轮廓g.drawArc(85,157,130,50,-65,312);g.drawArc(85,87,130,50,62,58);//绘制灯的左右轮廓g.drawLine(85,177,119,89);g.drawLine(215,177,181,89);//绘制灯柱线

g.drawLine(125,250,125,160);g.drawLine(175,250,175,160);//绘制底座

g.fillRect(10,250,260,30);}}图像importjava.awt.*;importjava.applet.*;publicclassPicAppletextendsApplet{Imagepic;//图像对象publicvoidinit(){pic=getImage(getCodeBase(),"fish.jpg");//获得图片}publicvoidpaint(Graphicsg){g.drawImage(pic,30,30,this);}}声音importjava.awt.*;importjava.applet.*;publicclassAudioAppletextendsApplet{AudioClipaudio;//声音对象publicvoidinit(){audio=getAudioClip(getCodeBase(),"fire.au");//获得声音}publicvoidpaint(Graphicsg){g.drawString("循环播放声音的Applet小程序",30,30);}publicvoidstart(){audio.loop();//循环播放声音}publicvoidstop(){audio.stop();//停止播放}}动画所谓动画就是通过连续播放一系列画面,给视觉造成连续变化的图画,这是动画最根本的原理。在屏幕上显示一系列连续动画的第一帧图像,然后每隔很短的时间再显示下一帧图像,如此往复,利用人眼视觉的暂停现象,感觉画面的物体在运动。用多线程实现动画文字在Java中实现多线程有两种方法:一种是继承Thread类;另外一种是实现Runnable接口,对于Applet小程序,我们一般是实现Runnable接口。实现动画文字与实现动画的方法是一样的,可以通过实现Runnable接口来实现多线程绘出动画文字,使文字像打字一样一个文字一个文字地跳出来,然后全部隐去,再重复显示文字,实现打字效果。

显示动画

publicclassMovingImgextendsApplet{ Imageimg0,img1; intx=10; publicvoidinit(){ img0=getImage(getCodeBase(),"T5.gif"); img1=getImage(getCodeBase(),"T1.gif"); } publicvoidpaint(Graphicsg){ g.drawImage(img0,0,10,this); g.drawImage(img1,x,30,this); g.drawImage(img0,0,60,this); try{ Thread.sleep(50); x+=5; if(x==550){ x=10; Thread.sleep(1500); } }catch(InterruptedExceptione){} repaint(); } }运行上述Applet时画面有闪烁的现象。一般来说,画面越大,闪烁越严重。防止闪动的方法有两个,一是通过覆盖update()方法,二是使用buffe

温馨提示

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

最新文档

评论

0/150

提交评论