关闭

关闭

关闭

封号提示

内容

首页 Applet编程.doc

Applet编程.doc

Applet编程.doc

上传者: trkqytr 2011-10-10 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《Applet编程doc》,可适用于IT/计算机领域,主题内容包含实验Applet编程实验 Applet编程实验目的()熟悉Applet的生命周期及其方法执行特点()掌握Applet图形绘制方法如何控制图形输出时的符等。

实验Applet编程实验 Applet编程实验目的()熟悉Applet的生命周期及其方法执行特点()掌握Applet图形绘制方法如何控制图形输出时的坐标位置变化。()掌握Applet参数传递()熟悉字体和颜色的控制方法()了解Applet图像显示和声音播放方法。了解双缓冲区的应用改进图像显示效果。知识要点Applet程序的执行特点()在HTML页面中运行() Applet作为一个对象是由浏览器的JVM自动创建并自动按如下顺序执行其方法。init()start()paint(g)Applet方法    Applet的常用方法见表Applet在其生命周期的各阶段将自动调用相应方法用户可根据需要在方法内安排特定的处理代码。表Applet的常用方法方法名描述init()安排初始化处理start()安排启动Applet时所要做的工作paint(g)在Applet的界面中绘制文字、图形等update(g)实现Applet画面的刷新,默认清除画面后调paint(g)repaint()重新绘制它将调用update(g)stop()安排停止Applet前所要做的工作destroy()安排浏览器关闭Applet退出前所要做的工作Applet的图形绘制借助Applet的“画笔”(Graphics)对象可调用表所示的方法实现各类图形的绘制。在paint方法执行时Applet将自动将自己的“画笔”通过参数传递给方法在其它情形下也可以通过由父类Component继承而来的getGraphics()方法得到“画笔”。表Graphics对象的常用图形绘制方法方法名描述drawString(Strings,intx,inty)绘制文字drawLine(intx,inty,intx,inty)绘制直线drawRect(intx,inty,intwidth,intheight)绘制矩形drawOval(intx,inty,intwidth,intheight)绘制椭圆drawPolygon(intxPoints,intyPoints,intnPoints)绘制多边形drawArc(int x,int y,int width,int height,int startAngle,int arcAngle)绘制圆弧drawRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight)绘制园角矩形fillOval(intx,inty,intwidth,intheight)绘制填充椭圆fillRect(intx,inty,intwidth,intheight)绘制填充矩形fillRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight)绘制填充园角矩形fillArc(intx,inty,intwidth,intheight,intstartAngle,intarcAngle)绘制填充扇形控制颜色和字体 Color包含红、绿、蓝的组合构造方法为:publicColor(intRed,intGreen,intBlue)每个参数的取值范围在~之间。Color类提供了一些常用颜色常量如:Colorred代表红色。定义字体对象用如下方法:FontmyFont=newFont("宋体",FontBOLD,)其中第个参数为字体名第个参数为字体大小。第个参数为代表风格的常量Font类中定义了个常量:FontPLAINFontITALICFontBOLD分别表示普通、斜体和粗体。借助表所示的方法可设置画笔或部件使用的字体和颜色。表设置颜色和字体 方法名描述voidsetColor(Colorc)设置画笔颜色ColorgetColor()读取画笔颜色voidsetFont(Fontc)设置画笔或部件字体FontgetFont()读取当前使用字体voidsetBackground(Colorc)设置部件的背景颜色voidsetForeground(Colorc)设置部件的前景颜色Applet的参数传递为了增强Applet程序的通用性Applet允许从HTML标记中获取参数程序运行时不同参数值将导致不同的运行结果。        通过HTML标记中的<PARAM>标记给它所嵌入的Applet程序传递参数。<appletcode="facclass"height=width=><paramname="n"value=""><applet>        在Applet程序中利用getParamter("参数名")方法获取HTML传递的参数值结果为字符串类型。Applet的多媒体支持()绘制图像第步:定义图像对象指出其URL位置和名称。publicImagegetImage(URL,String)以下是两个特殊的URL:getCodeBase():返回Applet字节码文件的URL地址。getDocumentBase():返回html文件的URL地址。第步:在画面中绘制图像。publicvoiddrawImage(Image,x,y,imageObserver)坐标规定图像的左上角位置最后一个参数imageObserver表示观察者通常是applet自己所以通常写this。为了改进画面的绘制效果经常利用双缓冲区绘图。开辟一个内存缓冲区将图像先绘制在该区域然后再将缓冲区的图形绘制到Applet画面。第步:建立图形缓冲区:ImagecreateImage(width,height)第步:使用Image对象的getGraphics()方法得到其Graphics对象第步:利用得到的Graphics对象在内存缓冲区绘图第步:利用Applet的画笔对象的drawImage方法将内存缓冲区对应的Image绘制到Applet面板上。()播放声音第步:使用Applet类的getAudioClip(URL,String)方法获取AudioClip类型的对象第步:通过AudioClip接口的方法控制播放:play():开始播放一个声音文件本方法每次调用都从头开始重新播放。loop():循环播放当前声音文件stop():停止播放当前声音文件样例程序样例:绘制可变大小的杨辉三角形                                                   注:行数有Applet参数决定范围~的一个值。【参考程序】importjavaapplet*importjavaawt*publicclassYanghuiextendsApplet{  introws  publicstaticlongfac(intn){     longres=     for(intk=k<=nk)        res=res*k     returnres  }   publicstaticlongcom(intn,intm){     returnfac(n)(fac(nm)*fac(m))  }    publicvoidinit(){     rows=IntegerparseInt(getParameter("lines"))  }   publicvoidpaint(Graphicsg){     intx,y=     for(intn=n<=rowsn){        x=        for(intm=m<=nm){           gdrawString(""com(n,m),x,y)          x=x       }        y=y     }  }}HTML程序<appletcode="Yanghuiclass"width=height=>  <paramname=linesvalue=><applet>【说明】本例的难点是如何控制绘制坐标的变化同一行的输出只要改变x坐标不同行的则改变y坐标。【编程技巧】()如何利用二重循环控制输出坐标的变化()如何从Applet参数接收一个整数样例:编制一个程序绘制如图所示的棋盘。【参考程序】importjavaawt*importjavaapplet*publicclassCheckerboardextendsApplet{  publicvoidpaint(Graphicsg){     introw  行号     intcol  列号     intx,y  方框左上角的坐标     for(row= row< row){        for(col= col< col){           x=col*           y=row*           if((row)==(col))                gsetColor(Colorred)           else                gsetColor(Colorblack)            gfillRect(x,y,,)         }     }  }}【编程技巧】()如何利用二重循环控制方框的输出坐标的变化()如何确定要绘制的方框的颜色值。样例:在Applet画面中用红色大号字绘制“欢迎光临”字让其自左向由移动移动到右边再重新至左边。【参考程序】importjavaawt*importjavaapplet*publicclasswelcomeextendsApplet{ intpos=  左边从第个象素位置开始绘制 Imagegraph intw publicvoidpaint(Graphicsg){    Stringstr="欢迎光临"    Fontf=newFont("黑体",FontBOLD,)    FontMetricsfm=getFontMetrics(f)    w=fmstringWidth(str)    gsetFont(f)gsetColor(Colorred)    gdrawString(str,pos,)    try{        Threadsleep() 延迟    }catch(InterruptedExceptione){}    pos    if (posw>getWidth()) 至右边界回到头部        pos=    repaint() }} 【编程技巧】()如何计算字符串显示时所占宽度() 控制显示位置的变化至右边界又回到左边() 利用延时控制文字移动速度。上机练习     基本题)根据Applet大小绘制若干同心圆相邻圆之间的间距为个象素。提示:通过getWidth()和getHeight()方法可获得applet的宽度和高度。)通过Applet参数提供两个间距在以内的整数找出这两个整数之间的所有素数按每行个在Applet画面上输出。)在Applet画面中绘制一个的围棋棋盘。棋盘的颜色由白(white)、灰(gray)、橘黄(orange)、浅红(pink)几种颜色中随机选取。     提高题)绘制数学函数y=sin(x)的曲线(其中x的取值为~))绘制一个太阳包括若干射线让太阳在Applet画面上从左向右缓慢移动到最右边由重新回到左边。)从Applet参数获取一个字符串统计其中每个英文字母出现的次数(不区分大小写)。)参照样例绘制移动的文字但绘制时利用双缓冲技术先创建一个和显示文字串一样大小的缓冲区将文字绘制在缓冲区再利用图像绘制方法绘制在Applet画面上。思考题)所有变量初始化、对象创建、参数设置等可以安排在Applet的什么方法内完成     A.init     Bstart   Cstop    D以上都不是)一个部件重绘时方法调用按下面哪个次序?A.直接调用paint()B.调用update而update会调用paint()C.调用repaint()由它调用update(),update再调用paint()D调用repaint(),它将直接调用paint)javaawtGraphics类的哪个方法可绘制填充矩形A.fillRect()       B.drawRect()    C.fillOval()D.drawPolygon()    E.drawLine())下列哪个方法不属于播放声音的方法?A.loop()  Bstop()  Cstart()  Dplay()) 在Applet画面的左上角至右下角画一条直线则draw处应如何选择?importjavaawt*importjavaapplet*publicclassmyAppletextendsApplet{publicvoidpaint(Graphicsg){   draw}}A    gdrawLine(,,getHeight(),getWidth())B    gdrawLine(,getWidth(),,getHeight())C    gdrawLine(,getWidth(),getHeight(),)D    gdrawLine(getWidth(),getHeight(),,))下列说法错误的一项是?A.getDocumentBase()用于获取包含Applet的HTML文件的URLB.getCodeBase()用于获取Applet主类的URLC.getParameter(Stringname)用于获取<PARAM>标记中的参数值D.若指定参数在HTML中没有说明则Applet将停止运行。)下列说法错误的一项是?A.getImage()方法无论图像是否存在都立即返回B.getImage()方法调用图像的时候一直等图像加载完毕才返回C.使用getImage()方法时只有图像真正需要绘制时数据才真正加载。D.由于网络带宽的限制图像的显示过程可能会很慢。)在HTML文件中通过什么标记嵌入AppletA<APPLET>  B<CODE>   C<CODEBASE>  D<PARAM>

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/9
1下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部