- 第一章:程序的思路分析
- 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类,开始编写程序。
- 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);
}
}
- 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: