在整个窗体上进行爱心移动并且不影响鼠标操作其他的软件

1.先创建窗体的外壳(就像门框)代码:

package com.jerry.classs;import java.awt.Toolkit;import javax.swing.JFrame;import com.sun.awt.AWTUtilities;/*** Java中表示窗体的类:JFrame 步骤: 1.写一个类,继承JFrame 2.写一个构造方法,确定窗体的形状* * @author jerry**/
public class GameFrame extends JFrame {//获取系统当前分辨率的宽度static int width = Toolkit.getDefaultToolkit().getScreenSize().width;//获取系统当前分辨率的高度static int height = Toolkit.getDefaultToolkit().getScreenSize().height;/*** 构造方法:类似于模具 给窗体定型*/public GameFrame() {//设置标题setTitle("爱心");//设置尺寸(大小)//setSize(宽度, 高度);setSize(width, height);//设置默认的关闭选项(每次制作窗体必须的加)setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//隐藏标题栏setUndecorated(true);//让特效一直显示在屏幕的顶端setAlwaysOnTop(true);//让窗体不遮盖桌面(程序运行时可以点击桌面的图标)AWTUtilities.setWindowOpaque(this, false);//固定的套路}public static void main(String[] args) {//创建窗体GameFrame frame = new GameFrame();//创建面板GamePanel panel = new GamePanel();//将面板加入窗体frame.add(panel);//让窗体显示//true表示显示,false表示隐藏frame.setVisible(true);}
}

2.创建窗体的面板窗体的装饰(就像门)代码:

package com.jerry.classs;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;import javax.imageio.ImageIO;
import javax.swing.JPanel;/**** Java中的面板:Panel 步骤: 1.写一个类,继承JPanel 2.写一个构造方法,确定面板的特点* * @author jerry**/
public class GamePanel extends JPanel {private static final long serialVersionUID = 1L;int num = 300;//代表屏幕中文字的数量//定义数组,用来存放所有文字的横坐标int[] xs = new int[num];//定义数组,用来存放所有文字的纵坐标int[] ys = new int[num];//定义颜色数组,用来存放所有文字的颜色Color[] cs = new Color[num];//定义数组,用来存放所有文字的大小int[] fs = new int[num];//定义数组,用来存放所有文字的移动熟读int[] sp = new int[num];//用来生成随机数的工具Random rd = new Random();//定义图片BufferedImage img;/*** 让文字活动*/public void action() {//Java中创建并启动线程的固定格式//创建并启动一个线程去播放音乐new Thread() {public void run() {//重复播放音乐while (true) {//创建音乐播放器MusicPlayer player = new MusicPlayer("/music/bgm.mp3");//开始播放音乐player.startMusic();}}}.start();//创建并启动线程,控制文字移动new Thread() {public void run() {//while,死循环控制文字一直移动while (true) {//遍历所有的文字,让文字移动起来for (int i = 0; i < num; i++) {//让文字的向左移动xs[i] -= sp[i];//如果横坐标小于等于0,移动到左边界if (xs[i] <= 0) {//让文字的横坐标等于屏幕宽度(文字出现在最右边)xs[i] = GameFrame.width;}}//让线程休眠try {//每移动一次休眠的毫秒数Thread.sleep(15);//刷新界面,将文字画在新的位置上repaint();//重新调用paint方法,绘制界面} catch (InterruptedException e) {e.printStackTrace();}}}}.start();}/*** 面板设置*/public GamePanel() {//加载图片try {img = ImageIO.read(this.getClass().getResource("/img/img.png"));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}//启动文字移动action();//设置面板的背景颜色//setBackground(Color.black);//循环,随机出所有文字的横纵坐标for (int i = 0; i < num; i++) {//随机生成所有的横坐标,并放入横坐标的数组中//rd.nextInt(num);表示在表示在[0,num)区间随机生成整数xs[i] = rd.nextInt(GameFrame.width);//随机生成所有的横坐标,并放入纵坐标的数组中//rd.nextInt(num);表示在表示在[0,num)区间随机生成整数ys[i] = rd.nextInt(GameFrame.height);//随机颜色cs[i] = new Color(rd.nextInt(255), rd.nextInt(255), rd.nextInt(255));//随机字体大小fs[i] = rd.nextInt(30) + 1;//随机文字速度sp[i] = rd.nextInt(10) + 1;}//让背景透明setOpaque(false);}/*** 画图专用方法*/@Overridepublic void paint(Graphics g) {super.paint(g);for (int i = 0; i < num; i++) {//设置画笔颜色(从颜色数组中获取)g.setColor(cs[i]);//设置画笔字体//new Font("字体名称",字体样式,字体大小)g.setFont(new Font("华文新魏", Font.BOLD, fs[i]));//画图片g.drawImage(图片, 横坐标,纵坐标, 宽度,高度,null);g.drawImage(img, xs[i], ys[i], fs[i] * 2, fs[i] * 2, null);//画文字g.drawString("文字内容",横坐标,纵坐标)//g.drawString("★I LOVE YOU", xs[i], ys[i]);//可以图片和文字一起显示}}
}

3.创建音乐播放组件 代码:

package com.jerry.classs;import java.io.BufferedInputStream;import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;/*** 播放音乐的* * @author jerry**/
public class MusicPlayer {//音乐的播放组件Player player;/*** 设置音乐播放器*/public MusicPlayer(String path) {//使用IO流将背景音乐加载到程序中BufferedInputStream ins = new BufferedInputStream(this.getClass().getResourceAsStream(path));//将音乐流输入到播放器组件中try {player = new Player(ins);} catch (JavaLayerException e) {e.printStackTrace();}}/*** 开始播放音乐*/public void startMusic() {//播放音乐try {player.play();} catch (JavaLayerException e) {e.printStackTrace();}}}

代码链接:https://pan.baidu.com/s/1L2-0puBQaEJ37Kyv-t24RQ 
提取码:vsw1

Java实现窗体爱心移动特效相关推荐

  1. 利用API实现窗体淡入淡出特效

    #region 利用API实现窗体淡入淡出特效 //窗体淡入淡出特效 public const Int32 AW_HOR_POSITIVE = 0x00000001; // 从左到右打开窗口 publ ...

  2. java设置窗体居中与去除边框以及jframe设置背景色

    java设置窗体居中的代码如下: public void setWindowCenter(JFrame frame){int windowWidth = frame.getWidth(); //获得窗 ...

  3. java计算机毕业设计爱心公益网站设计与制作源码+数据库+系统+lw文档+部署

    java计算机毕业设计爱心公益网站设计与制作源码+数据库+系统+lw文档+部署 java计算机毕业设计爱心公益网站设计与制作源码+数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  4. java毕业生设计爱心公益网站设计与制作计算机源码+系统+mysql+调试部署+lw

    java毕业生设计爱心公益网站设计与制作计算机源码+系统+mysql+调试部署+lw java毕业生设计爱心公益网站设计与制作计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B ...

  5. java添加窗体中_java中利用JFrame创建窗体 【转】

    Java代码 publicclassTest(){ publicstaticvoidmain(String[] args){ JFrame frame = newJFrame(); JPanel pa ...

  6. 基于JAVA动漫网站和特效处理系统(Springboot框架+AI人工智能) 开题报告

      本科生毕业论文 基于Java(springboot框架)动漫网站和特效处理系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学 ...

  7. HTML5七夕情人节表白网页(情人节满屏爱心HTML5特效) HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 抖音3D旋转相册 js烟花代码

    HTML5七夕情人节表白网页❤情人节满屏爱心HTML5特效❤ HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 抖音3D旋转相册 js烟花代码 css爱 ...

  8. HTML5七夕情人节表白网页制作【情人节满屏爱心HTML5特效】HTML+CSS+JavaScript html生日快乐祝福网页制作

    这是程序员表白系列中的100款网站表白之一,旨在让任何人都能使用并创建自己的表白网站给心爱的人看. 此波共有100个表白网站,可以任意修改和使用,很多人会希望向心爱的男孩女孩告白,生性腼腆的人即使那个 ...

  9. java毕业设计宠物爱心驿站Mybatis+系统+数据库+调试部署

    java毕业设计宠物爱心驿站Mybatis+系统+数据库+调试部署 java毕业设计宠物爱心驿站Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开 ...

最新文章

  1. P4161 [SCOI2009]游戏
  2. Jsp-request与requestScope的区别
  3. Spring事务 Transaction rolled back because it has been marked as rollback-only
  4. Java程序员之完美代码
  5. wait放弃对象锁_Java线程中wait、await、sleep、yield、join用法总结
  6. 1-1圆柱体的表面积(算法竞赛入门经典)
  7. 【转】mybatis 自增主键配置
  8. 啊u学科学计算机,动画 | 《阿U学科学》:开学啦!在游戏中学习科学知识吧
  9. Ibatis2.0使用说明(二)——配置篇(2)
  10. 深度探索C++对象模型
  11. SqlServer2008R2附加数据库错误5123
  12. 基本的信号——Sa函数(抽样信号)
  13. i5 10400f和r7 2700x选哪个?
  14. html5支持ajax和jQuery吗,使用HTML5文件上传与AJAX和jQuery(Using HTML5 file uploads with AJAX and jQuery)...
  15. 去年四大业务全线“上涨”,这家零部件巨头仍净亏近8千万欧元
  16. socket---TCP通信
  17. 百度超级链作为中国唯一企业代表出席WTO论坛,携手国际领袖制定全球区块链标准...
  18. camunda modeler 汉化方法
  19. 全志平台Android系统的设备烧录Tina系统失败问题解决方法
  20. 微信公众号开发环境搭建(一)

热门文章

  1. 新手开始操作无货源淘宝,应该怎么选品
  2. 手眼标定eye-in-hand、eye-to-hand
  3. WiFi SNR与信号强度
  4. ssh生成公钥、私钥
  5. 把财务分析明白的BI软件有哪些?
  6. 【数据分析师八大能力】
  7. python 按顺序读文件夹下面的文件
  8. ubuntu 16.04成功安装meteor
  9. 生产追溯系统-Wifi+传感器,实现计数器以及监控机器是否停止
  10. 副边低待机功耗电源芯片CR5241/CR5243/CR5244/CR5249的功能特性与参数对比