首页 新闻 会员 周边 捐助

JAVA项目的登录界面动态背景设置问题

0
[已解决问题] 解决于 2022-07-06 10:52

我在做JAVA项目时想要将背景设置为动态,但是没有成功,设置出来的背景图还是静态的,具体的代码和运行结果如下,有没有大佬指点一下
代码:

下面是结果:
注意,运行以后是是静态的,下面我把动态原图放出来

五号位的主页 五号位 | 小虾三级 | 园豆:612
提问于:2022-07-05 16:10
< >
分享
最佳答案
1

效果图(动态的):

代码:

import javax.swing.*;
import java.awt.*;

public class Main {
    public static void main(String[] args) {
        // 背景图片
        ImageIcon icon = new ImageIcon("C:\\Users\\Shane\\Desktop\\bg.gif");
        // 宽
        int width = icon.getIconWidth();
        // 高
        int height = icon.getIconHeight();

        // JFrame
        JFrame jf = new JFrame("测试GIF背景图片");
        // 设置窗口尺寸
        jf.setSize(width, height);
        // 设置窗口居中
        jf.setLocationRelativeTo(null);
        // 设置点击关闭按钮时退出
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 1.分层面板
        JLayeredPane layeredPane = new JLayeredPane();
        // 2.背景图片面板
        JPanel bgPanel = new JPanel();
        // 设置面板流式布局
        bgPanel.setLayout(new FlowLayout());
        // 把图片添加到标签中
        JLabel label = new JLabel(icon);
        // 设置尺寸
        bgPanel.setBounds(0, 0, width, height);
        // 添加标签
        bgPanel.add(label);

        // 3.按钮面板
        JPanel panel = new JPanel();
        // 设置面板流式布局
        panel.setLayout(new FlowLayout());
        panel.setBackground(Color.RED);
        // 面板设置为透明
        panel.setOpaque(false);
        // 测试按钮
        JButton button = new JButton("测试按钮");
        // 设置尺寸
        panel.setBounds(0, 0, width, height);
        // 面板添加测试按钮
        panel.add(button);

        // 背景图片面板添加到分层面板的低层
        layeredPane.add(bgPanel, JLayeredPane.DEFAULT_LAYER);
        // 背景图片面板添加到分层面板的高层
        layeredPane.add(panel, JLayeredPane.MODAL_LAYER);

        // 添加分层面板
        jf.setContentPane(layeredPane);
        // 设置显示窗口
        jf.setVisible(true);
    }
}
奖励园豆:5
飒沓流星 | 小虾三级 |园豆:1099 | 2022-07-05 23:07

谢谢大佬,真的实现了,我的代码的问题应该是忽略了GIF图片的分辨率,宽和高运用了别的方法后也是完美实现了,谢谢大佬!!!

五号位 | 园豆:612 (小虾三级) | 2022-07-05 23:39

@五号位:
客气,相互学习

飒沓流星 | 园豆:1099 (小虾三级) | 2022-07-05 23:52
其他回答(1)
0

您这个不是web项目哇,看起来像是桌面程序呢。

如果是网站就简单多了。

楠木大叔 | 园豆:2083 (老鸟四级) | 2022-07-05 21:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册