练习74下雪的图档.doc_第1页
练习74下雪的图档.doc_第2页
练习74下雪的图档.doc_第3页
练习74下雪的图档.doc_第4页
练习74下雪的图档.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

练习74 下雪的图档本例知识点一句话讲解新学知识使用Dimension类存放屏幕尺寸使用Random类产生随机数来确定雪花的位置已学知识使用Image类加载图片使用Thread类管理线程一、练习具体要求本练习制作模拟下雪的图档的实例。如图74-1所示,程序执行后,创建一个带有背景颜色的面板,前景是雪花飘动的效果,雪花的位置是随机的,雪花的数量和下落的速度可以通过SnowPic.html的源程序来控制。二、程序及注释(1)编程思路:首先,本练习因为要制作下雪的图档的实例,所以首先要加载图片背景,在初始化小程序的函数public void init()中,先通过语句gAlc0 = getImage(getDocumentBase(), getParameter(graphic, test.gif)得到图片的路径和名称,然后通过语句mt.addImage(gAlc0, 0)加载图片。然后,制作雪花效果,这是通过函数public void drawBackSnow(Graphics g)完成的,先通过语句g.setColor(Color.white)设置前景色为白色来画雪花,然后以雪花的总数作为循环条件,通过一个for循环结构,制作雪花,雪花位置的横坐标通过语句snowXi += rand.nextInt() % 2 + wind确定,雪花位置的纵坐标通过语句snowYi += (rand.nextInt() % 6 + 5) / 5 + 1确定。(2)程序实现及注释:/SnowPic.javaimport java.applet.Applet;import java.awt.*;import java.util.Random;public class SnowPic extends Applet implements Runnable /变量声明 Thread mainThread; Image offScreen; Image gAlc; Random rand; int stopFlag; int snows; int wind; int threadSleep; int snowSize; int snowX; int snowY; long stopTime; Dimension dim; MediaTracker mt; /构造函数 public SnowPic() stopTime = 0L; /得到一个字符串和一个整数类型的参数 int getParameter(String s, int i) String s1 = getParameter(s); return s1 = null ? i : Integer.parseInt(s1); /得到一个字符串和三个整数类型的参数 int getParameter(String s, int i, int j, int k) String s1 = getParameter(s); if(s1 != null) if(i = Integer.parseInt(s1) j) return j; if(i k) return k; else return i; else return i; /得到两个字符串的参数 String getParameter(String s, String s1) String s2 = getParameter(s); return s2 = null ? s1 : s2; /初始化小程序 public void init() rand = new Random(); dim = getSize(); offScreen = createImage(dim.width, dim.height); snows = getParameter(snows, 100, 500, 0); snowSize = getParameter(snowSize, 3, 10, 3); threadSleep = getParameter(threadsleep, 80, 1000, 10); snowX = new intsnows; snowY = new intsnows; for(int i = 0; i snows; i+) snowXi = rand.nextInt() % (dim.width / 2) + dim.width / 2; snowYi = rand.nextInt() % (dim.height / 2) + dim.height / 2; mt = new MediaTracker(this); gAlc = new Image1; gAlc0 = getImage(getDocumentBase(), getParameter(graphic, test.gif); mt.addImage(gAlc0, 0); try mt.waitForID(0); catch(InterruptedException interruptedexception) return; stopFlag = 0; /启动小程序 public void start() if(mainThread = null) mainThread = new Thread(this); mainThread.start(); /停止小程序 public void stop() mainThread = null; /运行小程序 public void run() while(mainThread != null) try Thread.sleep(threadSleep); catch(InterruptedException interruptedexception) return; repaint(); /生成雪花 public void drawBackSnow(Graphics g) g.setColor(Color.white); for(int i = 0; i = dim.width) snowXi = 0; if(snowXi = dim.height | snowYi 0) snowXi = Math.abs(rand.nextInt() % dim.width); snowYi = 0; wind = rand.nextInt() % 5 - 2; /画屏函数 public void paint(Graphics g) offScreen.getGraphics().setColor(Color.black); offScreen.getGraphics().fillRect(0, 0, dim.width, dim.height); offScreen.getGraphics().drawImage(gAlc0, 0, 0, this); drawBackSnow(offScreen.getGraphics(); g.drawImage(offScreen, 0, 0, null); /更新屏幕函数 public void update(Graphics g) paint(g); 三、练习效果(如图74-1所示)本实例代码编写完毕,存盘为:C: j2sdk1.4.0javaprograms SnowPic.java。打开计算机的命令提示符窗口,然后在命令提示符窗口中,定位到javaprograms目录,输入javac SnowPic.java 来编译程序,最后将程序加载到网页上。在javaprograms文件夹下新建一个记事本文件,内容为下雪的

温馨提示

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

评论

0/150

提交评论