情人节,超赞程序员这样表达自己的爱意~
程序员文章站
2024-03-16 17:31:58
...
代码不足100行,但这是我们程序猿的浪漫。
import javazoom.jl.player.Player;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
/*
敲得越多,钱越多!!!
敲得越多,钱越多!!!
敲得越多,钱越多!!!
*/
public class RuRu {
public static void main(String[] args) {
// 播放音乐
playMusic("C:\\Users\\Lenovo\\Desktop\\小F4 - 情非得已.mp3");
JFrame jfm = new JFrame();
// 创建窗体大小
jfm.setSize(1250, 753);
// 创建面板并添加到面板上
MyPanel panel = new MyPanel();
jfm.add(panel);
jfm.setLocationRelativeTo(null);
// 设置关闭窗体时关闭程序
jfm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗体可见
jfm.setVisible(true);
}
public static void playMusic(String path) {//播放背景音乐
//因为轮换播放会造成阻塞,所以需要开启线程
new Thread(new Runnable() {
@Override
public void run() {
File file = new File(path);
try {
//播放时候采用输入流来读取相册
FileInputStream fis = new FileInputStream(file);
BufferedInputStream stream = new BufferedInputStream(fis);
Player player = new Player(stream);
player.play();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
class MyPanel extends JPanel {
JLabel pictureLabel = null;
public MyPanel() {
super.setLayout(null);//清除默认样式(防止定义按钮不准)
//因为先添加的层级在最前面
// 封面图
Image logo = new ImageIcon(this.getClass().getResource("logo.png")).getImage()
.getScaledInstance(360, 360, Image.SCALE_DEFAULT);
pictureLabel = new JLabel(new ImageIcon(logo));
pictureLabel.setBounds(430, 84, 364, 364);// 设置位置
this.add(pictureLabel);
//相框
// Image border = new ImageIcon(this.getClass().getResource("border.jpg")).getImage()
// .getScaledInstance(800, 600, Image.SCALE_DEFAULT);
// JLabel imgLabel = new JLabel(new ImageIcon(border));
// // 此处设置坐标位置
// imgLabel.setBounds(300, 60, 641, 464);// 设置位置
// this.add(imgLabel);
playPictures();//播放照片
}
@Override
public void paintComponent(Graphics g) {
try {//初始化背景
BufferedImage bg = ImageIO.read(this.getClass().getResource("bg.jpg"));
Graphics2D g2 = (Graphics2D) g;
//和窗体一样的大小,这样就可以平铺进去
g2.drawImage(bg.getScaledInstance(1250, 753, Image.SCALE_DEFAULT), 0, 0,
1250, 753, null);
} catch (Exception e) {
e.printStackTrace();
}
}
void playPictures() {//播放相片
new Thread(new Runnable() {
@Override
public void run() {
try {
//此处睡五秒钟,意为让封面图停留五秒钟
Thread.sleep(5000);
pictureLabel.setBounds(320, 82, 614, 366);// 设置位置
//读取imgs文件夹
URL url = MyPanel.class.getResource("imgs");
File dir = new File(url.getFile());
File[] pics = dir.listFiles();
//遍历照片数组获取imgs对象
for (File pic : pics) {
Image image = new ImageIcon(pic.getAbsolutePath())
.getImage().getScaledInstance(612, 500,
Image.SCALE_DEFAULT);
//之后把图片代替封面或者上一张图片
pictureLabel.setIcon(new ImageIcon(image));
Thread.sleep(5000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}
本人制作的视频涉及自己照片就不放出了。具体操作及效果可参照本人八阿哥老师视频哟https://v.youku.com/v_show/id_XNDU0NDY1NDUxMg==.html
个性签名:一个人在年轻的时候浪费自己的才华与天赋是一件非常可惜的事情
如果觉得这篇文章对你有小小的帮助的话,记得在右下角“点赞”~“评论” “收藏”哦,博主在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
推荐阅读