一)制作要点

1.多线程的使用

2.类java.util.Random的使用

(二)嵌入Applet的HTML页面源代码

SnowPic

注意:上面的图片中java的类名为SnowPic 注意大小写,以及图片的名称Bridge.jpg 和大小1024*768

java源代码

import java.applet.Applet;

import java.awt.*;

import java.util.Random;

public class SnowPic extends Applet implements Runnable

{

Thread mainThread;

Image offScreen,gAlc[];

Random rand;

int stopFlag,snows,wind,threadSleep,snowSize;

int[] snowX,snowY;

long stopTime =0;

Dimension dim;

MediaTracker mt;

public SnowPic(){}

int getParameter(String s1,int s2)

{

String s=getParameter(s1);

return(s !=null)?Integer.parseInt(s):s2;

}

int getParameter(String s1,int s2,int max,int min)

{

String s=getParameter(s1);

if(s!=null)

{

if((s2=Integer.parseInt(s))>max) return max;

else if (s2

else return s2;

}else return s2;

}

String getParameter(String s1 , String s2)

{

String s= getParameter(s1);

return (s!=null)?s: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 int [snows];

snowY = new int [snows];

for( int i=0;i

{

snowX=rand.nextInt()%(dim.width/2)+dim.width/2;

snowY=rand.nextInt()%(dim.height/2)+dim.height/2;

}

mt =new MediaTracker(this);

gAlc= new Image[1];

gAlc[0]=getImage(getDocumentBase(),getParameter("graphic","test.gif"));

mt.addImage(gAlc[0],0);

try

{

mt.waitForID(0);

}

catch(InterruptedException ex) {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 ex) {return;}

repaint();

}

}

public void drawBackSnow(Graphics g)

{

g.setColor(Color.white);

for(int i=0;i

{

g.fillOval(snowX,snowY,snowSize,snowSize);

snowX+=rand.nextInt()%2+wind;

snowY+=(rand.nextInt()%6+5)/5+1;

if(snowX>=dim.width) snowX=0;

if(snowX<0) snowX=dim.width -1;

if(snowY>=dim.height ||snowY<0)

{

snowX =Math.abs(rand.nextInt()%dim.width);

snowY =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(gAlc[0],0,0,this);

drawBackSnow(offScreen.getGraphics());

g.drawImage(offScreen,0,0,null);

}

public void update(Graphics g)

{

paint(g);

}

}

注意保存为SnowPic.java

java 雪花特效_java实现图片飘雪花的特效相关推荐

  1. java幻灯片效果_java中怎么实现幻灯片切换特效?详细实例展示

    在java的使用过程中,我们会发现它的功能真的很强大,完成内容也极其丰富.今天就给大家介绍一下如何在java中实现幻灯片切换特效,以及通过实际的代码来为大家展示. 在最开始,需要说明的是,这个代码是实 ...

  2. java thumbnails 中心点_java Thumbnails 图片处理的使用

    在后端开发的过程中,都逃不开与文件传输特别是图片的传输打交道,但是因为现在各种拍照设备发展越来越快,拍出的照片更是越来越清晰,但是照片文件的大小也是越来越大了,手机拍照小则2M大则30M这在网络传输过 ...

  3. java盒图_java合成图片

    package com.pbids.sanqin.util; import javax.imageio.ImageIO; import java.awt.*; import java.awt.imag ...

  4. java 水印 位置_Java实现图片加水印且控制位置和透明度

    Java实现图片加水印且控制位置和透明度 昨天要做一个给图片加水印的功能,不想使用一些插件,就在网上转了一会儿,经过改装成了我需要的功能,代码如下: package org.guhao; import ...

  5. 【pr+ae模板插件预设】79组冬天下雪飘雪花结冰特效合成mg动画

    79组冬天下雪飘雪 [素材介绍] 分辨率: 3840×2160 4K 文件大小:10.1 GB (压缩包大小) 素材数量:79 素材格式:.MP4 视频编码:H.264 视频帧数: 23.976 FP ...

  6. java照片拍摄时间_java读取图片的(尺寸、拍摄日期、标记)等EXIF信息

    主要代码如下: package com.test; import java.io.File; import java.io.IOException; import java.util.Iterator ...

  7. java thumbnails 内存_Java修改图片尺寸,总是报内存溢出怎么解决?

    项目需求:有很多尺寸很大的图片(图片大小可能几十MB,甚至上百MB),需要等比例缩小它们的尺寸,相当于生成缩略图. 例如:原图8268x6201,需要压缩成400x300. 我现在的方法:将图片整个读 ...

  8. java image 透明_Java实现图片透明效果

    Java实现图片透明效果,从演示截图可看到,上层图片与下层图片互相重叠,也就是上层图片透明了,看到了下层以的图片,具体的代码实现: public class HalfTransparentImageD ...

  9. java颜色识别_java读取图片对应坐标的颜色值

    public class ImageRead { int width=0; int height=0; int[][] ImageArray; StringBuffer sb = new String ...

最新文章

  1. Fundamental Research:根系分泌物通过调控土壤微生物影响碳周转的机理
  2. 在VM6.5正式版中安装ESX Server 3.5的办法
  3. golang odbc mysql_golang使用odbc链接hive
  4. 细说C#多线程那些事 - 线程同步和多线程优先级
  5. Android 使用内置的Camera应用程序捕获图像
  6. Libra教程之:Libra testnet使用指南
  7. 禅道之需求追踪和多角色协作流程
  8. linux 配置思科路由器,将配置文件导入cisco2611路由器步骤
  9. 大数据在各个行业中的应用_三维设计广泛应用各个行业
  10. 河北四部门联合打击虚开骗税违法行为
  11. Adapter中notify(),notifyAll(),notifyDataSetChanged(),notifyDataSetInvalidaded()方法的区别
  12. 大数据工程师简历_大数据工程师简历3份
  13. Java工程师成神之路(2018修订版)
  14. 小程序谷歌统计 Google Analytics
  15. 图论-生成树-黑暗城堡
  16. kettle8.3-win安装操作指南
  17. 我的第一篇论文诞生的故事
  18. c语言函数定义时涉及的基本要素是什么,C语言基础:函数的定义与调用
  19. JQuery实现图片点击放大
  20. Java程序突然死掉的原因

热门文章

  1. 图片怎么等比缩放_mac图像缩放工具Teorex iResizer
  2. java stop和int,JAVA并发任务中止的isinterrupted,interupted()
  3. python识别12306验证码_Python3.4实现的12306最新验证码识别
  4. Facets:评估机器学习数据集质量利器 (来自Google、可交互、可可视化)
  5. 命犯编程!因为名字特殊,她被苹果封了 6 个月
  6. 记一次 Python Web 接口优化
  7. 说说每月至少一次的那点事,文末有彩蛋!
  8. 如何看待 2020 届校招算法岗「爆炸」的情况?英雄所见略同
  9. eclipse和idea代码通用吗_python能在苹果手机上运行吗
  10. 版是什么版本的教材_acca教材有哪些版本