在整个窗体上进行爱心移动并且不影响鼠标操作其他的软件 1.先创建窗体的外壳(就像门框)代码: 2.创建窗体的面板窗体的装饰(就像门)代码: 3.创建音乐播放组件 代码: 代码链接:https://pan.baidu.com/s/1L2-0puBQaEJ37Kyv-t24RQ
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); } }
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 block e.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); } /** * 画图专用方法 */ @Override public 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]);//可以图片和文字一起显示 } } }
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(); } } }
提取码:vsw1
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算