情人节,超赞程序员这样表达自己的爱意~

代码不足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毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值