本人从事java行业十余年, java实现雪花飘落的效果,跟大家一起学习分享,希望可以帮到你们。
更多java学习资料视频课程地址:https://ke.qq.com/course/149432?tuin=57912c43
有技术问题或者想学习交流的加我个人微信renlliang2013。
程序采用面向对象的思想,包含主程序,面板类和雪花类。
主程序用来生成窗口,存放面板等作用。
面板类用来存放背景图片,存放生成的雪花对象,定时去刷新雪花的位置,形成雪花飘落的效果。
雪花类用来生成雪花对象,提供雪花移动的方法。
打开idea开发工具,把bg.png、bg2.png、bg3.png和snow.png图片拷贝到src目录下。
创建cn.tx.utils和cn.tx.domain的包结构。
把FrameUtils.java拷贝到utils包中。
把XueHua.java和MyJpanel.java拷贝到domain包中。
创建cn.tx.main包,创建MyFrame类,开始编写程序。
编写主程序,主要是生成窗口、面板和设置背景图片。
package cn.tx.main; import cn.tx.domain.MyJpanel; import cn.tx.utils.FrameUtils; import javax.swing.*; /** * 作者:樱木老师 */ public class Demo1 { public static void main(String[] args) { // 创建窗口对象 JFrame frame = new JFrame("我超喜欢你的"); // 初始化大小和显示位置 FrameUtils.init(frame,1000,700); // 创建面板对象 MyJpanel jpanel = new MyJpanel(frame); // 切换背景图片 String [] bgs = {"bg.png","bg2.png","bg3.png"}; // 设置背景图片 jpanel.changebg(jpanel,bgs); // 添加 frame.add(jpanel); // 启动线程,执行动画效果 new Thread(jpanel).start(); // 开启新的线程,播放背景音乐 new Thread(new MyMusic()).start(); // 显示 frame.setVisible(true); } }
把xxx.mp3的背景音乐拷贝到src目录下
在项目中导入jl1.0.jar(播放音乐需要使用的jar包)
把MusicUtils.java工具类拷贝到cn.tx.utils包中
编写播放音乐的类(也是使用线程的方式)
package cn.tx.main; import cn.tx.utils.MusicUtils; /** * 作者:樱木老师 */ public class MyMusic implements Runnable { @Override public void run() { // 播放音乐 MusicUtils.play(MyMusic.class.getResourceAsStream("/qt.mp3")); } }
修改主函数,启动线程,加入播放背景音乐的代码
package cn.tx.main; import cn.tx.domain.MyJpanel; import cn.tx.utils.FrameUtils; import javax.swing.*; /** * 作者:樱木老师 */ public class Demo1 { public static void main(String[] args) { // 创建窗口对象 JFrame frame = new JFrame("撩妹"); // 初始化大小和显示位置 FrameUtils.init(frame,1000,700); // 创建面板对象 MyJpanel jpanel = new MyJpanel(frame); // 添加 frame.add(jpanel); // 启动线程,执行动画效果 new Thread(jpanel).start(); // 开启新的线程,播放背景音乐 new Thread(new MyMusic()).start(); // 显示 frame.setVisible(true); } }
更多java学习资料视频课程地址:https://ke.qq.com/course/149432?tuin=57912c43
有技术问题或者面试方面想学习交流的加我个人微信renlliang2013