先看效果

效果可以吧,这个程序是去年2017年12月24日写的

嗯,那天是平安夜,那天晚上我依旧孤独的躲在宿舍角落里,一边听着陈奕迅的圣诞结一边写着这无聊到蛋疼的程序,念及此不觉潸然泪下。。。

好的接下来就教大家如何写这无聊到蛋疼的程序吧。。。

先新建一个java项目

需要注意的是这里不要选现在最新的版本,建议选1.7

因为我们要用到AWTUtilities,jdk9.0没有这个东东,当时想个做透明窗口就因为这个折腾了很久。。。

然后点击 窗口-首选择-java-编译器-错误/警告

把他们都设为“警告”,还有把那两个勾也打上

雪花

其实雪花挺容易画的 打开ps新建一个20*20像素背景颜色为黑色的图片

然后按Ctrl和+放大,把画笔设为白色

新建个图层 在新图层里圈两圈就出来了

再把背景隐藏掉 保存为png格式,丢到项目目录下ok

雪花素材:https://liziguo-1255588302.cos.ap-guangzhou.myqcloud.com/www.liziguo.cn/xue.png

新建类“认真的雪”

package 认真的雪;import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import com.sun.awt.AWTUtilities;
import javax.imageio.ImageIO;
import javax.swing.JDialog;
import javax.swing.JPanel;public class Renzhendexue extends JDialog{//主窗口private static final long serialVersionUID = -6073107021198223228L;//获取屏幕分辨率public final static int Width = (int) java.awt.Toolkit.getDefaultToolkit().getScreenSize().width;public final static int Height = (int) java.awt.Toolkit.getDefaultToolkit().getScreenSize().height;public static void main(String[] args) {new Renzhendexue().setVisible(true);}public Renzhendexue(){this.setLocation(0,0);//位置this.setSize(Width, Height);//大小,大小为屏幕分辨率this.setUndecorated(true);//隐藏最大化最小化那一栏,一时想不起叫什么了this.setAlwaysOnTop(true);//窗口始终在最顶上this.setDefaultCloseOperation(0);//防止按Alt+F4关闭hua hua=new hua();this.add(hua);AWTUtilities.setWindowOpaque(this, false);//实现透明窗口建议使用jre1.7版本}
}class hua extends JPanel implements Runnable{//画布private static final long serialVersionUID = -2986761287590314088L;public static ArrayList<xue>list=new ArrayList<xue>();private BufferedImage img;public hua(){try {img=ImageIO.read(new File("LZG雪花.png"));//加载雪花图片} catch (IOException e) {e.printStackTrace();}this.setOpaque(false);//设为透明的new Thread(this).start();//启动线程}@Overridepublic void paint(Graphics g) {// TODO 自动生成的方法存根super.paint(g);for(int i=0;i<list.size();i++){xue x=list.get(i);g.drawImage(img, (int)x.x, (int)x.y, x.w, x.h, null);}}@Overridepublic void run() {// TODO 自动生成的方法存根int fps=150;//每秒帧数int time=1000/fps;int ii=0;while(true){long a=System.currentTimeMillis();if(ii>3){new xue();ii=0;}ii++;for(int i=0;i<list.size();i++){//调用所有雪花的run方法list.get(i).run();}repaint();//画雪long b=System.currentTimeMillis();long c=b-a;if(time-c>0)try {Thread.sleep(time-c);} catch (InterruptedException e) {e.printStackTrace();}}}}class xue{//雪0public int w,h;public float x,y,sdx,sdy;public xue(){w=h=(int)(Math.random()*20+10);//随机大小sdx=(float) (Math.random()*0.7+0.3);//x轴移动速度sdy=(float) (Math.random()*0.4+0.3);//y轴移动速度//雪花出现的位置只能在屏幕的上右方double gailv=(double)(Renzhendexue.Width+Renzhendexue.Height)/Renzhendexue.Width-1;if(Math.random()<gailv){//雪花在屏幕上方y=-h;x=(int)(Math.random()*Renzhendexue.Width);}else{//雪花在屏幕右方x=Renzhendexue.Width;y=(int)(Math.random()*Renzhendexue.Height);}hua.list.add(this);//添加进集合}public void run(){//雪花的移动//如果雪花超出屏幕范围的话就从集合中删掉if(x+w<0||y>Renzhendexue.Height||x+w<0||y>Renzhendexue.Height){hua.list.remove(this);}y+=sdy;x-=sdx;}
}

大功告成!

最后 对js网页下雪感兴趣的话可以去看看我另一篇博客

https://blog.csdn.net/u010756046/article/details/85251975

java屏幕下雪效果,特别的浪漫相关推荐

  1. JAVA圣诞代码_[Java教程]【Merry Christmas】圣诞节,给博客添加浪漫的下雪效果!...

    [Java教程][Merry Christmas]圣诞节,给博客添加浪漫的下雪效果! 0 2012-12-25 15:00:20 一年一度的圣诞节又到了,首先祝大家好运一串串,健康一年年,平安到永远! ...

  2. 默认墨迹天气 下雪效果

    WeatherAnimationDemo 项目地址:KitTak/WeatherAnimationDemo 简介:默认墨迹天气 下雪效果 模仿墨迹下雪效果 在布局中直接通过自定义 SurfaceVie ...

  3. unity 给图片边缘_Unity Shader 屏幕后效果——边缘检测

    关于屏幕后效果的控制类详细见之前写的另一篇博客: 这篇主要是基于之前的控制类,实现另一种常见的屏幕后效果--边缘检测. 概念和原理部分: 首先,我们需要知道在图形学中经常处理像素的一种操作--卷积. ...

  4. css3下雪的效果,首页下雪效果

    首页下雪效果 Posted on 2019-09-17 14:18 大艾木 阅读(...) 评论(...) 编辑 收藏 下雪效果,转自网络,快去试试吧 :) 原理 通过多张雪花图片,不同速度的移动,达 ...

  5. python下雪的实例_javascript实现下雪效果【实例代码】

    原理 : 1.js动态创建DIV,指定CLASS类设置不同的背景图样式显示不同的雪花效果. 2.js获取创建的DIV并改变其top属性值,当下落的高度大于屏幕高后删除该移动div 3.好像不够完善勿喷 ...

  6. CSS:模拟下雪效果动画制作教程

    下雪效果只是一类效果的名称,可以是红包雨等一些自由落体的运动效果,本文就是用纯css模拟下雪的效果,更多效果大家可以自行发挥. 1.前言 由于公司产品的活动,需要模拟类似下雪的效果.浏览器实现动画无非 ...

  7. Android 屏幕切换效果实现 (转)

    本教程将介绍如何实现屏幕间的切换效果.在前述 Ophone 2D UI 动画教程 中介绍了OPhone提供的animation功能,里面介绍了如何操作具体View的动画效果,在一般情况下我们希望在程序 ...

  8. Android屏幕切换效果实现

    屏幕切换效果实现 摘自:程云峰,网名 icess,杭州恒生电子研发中心. 个人网站: http://www.chengyunfeng.com/ 本教程将介绍如何实现屏幕间的切换效果.在前述 Ophon ...

  9. 纯css模拟下雪效果

    效果如其名,想必都见过下雪(可能南方人除外哈哈),但下雪效果只是一类效果的名称,可以是红包雨等一些自由落体的运动效果,本文就是用纯css模拟下雪的效果. 1.前言 由于公司产品的活动,需要模拟类似下雪 ...

最新文章

  1. Alphabet旗下自驾公司Waymo入华,变身“慧摩”!
  2. [VSCode]中英文界面切换
  3. 03 在百度地图上定位到指定位置
  4. 努力寻找适合自己的学习方法!
  5. iOS开发日记4-第三方登录(ShareSDK)
  6. 【STM32】PWM程序
  7. python的类是什么意思_Python 各种下划线都是啥意思_、_xx、xx_、__xx、__xx__、_classname_...
  8. 一文告诉你 Event Loop 是什么?
  9. Python3爬取影片入库
  10. weblogic for linux 下载,weblogic for linux安装
  11. UNIX网络编程卷1:套接字联网API(第3版).pdf
  12. ES 京东订单中心架构设计
  13. sticky粘性定位
  14. php多虚拟主机配置
  15. Could not autowire. No beans of xxx 解决办法
  16. 用ajax表单全部提交
  17. 12000字解读白小T:成立1年创收1亿,单品类策略如何引爆流行?
  18. 特殊的不定方程——毕达哥拉斯三元组(勾股数组)
  19. 上火有多种 “灭火”要对症
  20. 已知等价关系求商集_等价关系习题

热门文章

  1. 19.免费ARP详解
  2. ML基本知识(一)查准率和查全率
  3. 内核大佬讲述,Linux内核源码分析方法(建议收藏)
  4. 有追索权保理与无追索权保理
  5. 解决处理Windows server 2016远程桌面授权
  6. python密码强度判断代码_Python实现的密码强度检测器示例
  7. echarts 世界地图标点_关于echarts的那些事(地图标点,折线图,饼图)
  8. python basemap 在地图标点
  9. 正则表达式 匹配点号_在Unix和Mac上的Shell编程(正则表达式)
  10. 冬至节日故事介绍PPT模板