java之雪花飘落效果的实现(撩妹小程序)

  1. 第一章:程序的思路分析
    1. 1.思路分析

程序采用面向对象的思想,包含主程序,面板类和雪花类。

主程序用来生成窗口,存放面板等作用。

面板类用来存放背景图片,存放生成的雪花对象,定时去刷新雪花的位置,形成雪花飘落的效果。

雪花类用来生成雪花对象,提供雪花移动的方法。

  1. 第二章:程序的代码实现
    1. 1. 准备工作

打开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类,开始编写程序。

  1. 2. 代码实现

编写主程序,主要是生成窗口、面板和设置背景图片。

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);
    }
​
}
  1. 3. 可以添加背景音乐

把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精讲视频教程,如果你现在也在学习Java,在入门学习Java的过程当中缺乏系统的学习教程,你可以加群654631948领取下学习资料,面试题,开发工具等,群里有资深java老师做答疑,每天也会有基础部分及架构的直播课,也可以加我的微信renlliang2013做深入沟通,只要是真心想学习Java的人都欢迎。

java基础教程:https://ke.qq.com/course/149432?tuin=57912c43


Java分布式互联网架构/微服务/高性能/springboot/springcloud:

https://ke.qq.com/course/179440?tuin=57912c43

发布了87 篇原创文章 · 获赞 63 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/renlianggee/article/details/90204447