Java中JFrame窗口添加背景图片

知识储备:
1.JFrame中是有很多层次关系的,具体可以去自己查一下;
在这里插入图片描述
在这里插入图片描述

主要思路:
1.把图片添加到标签里(把标签的大小设为和图片大小相同),把标签放在分层面板的最底层;
2.把窗口面板设为内容面板并设为透明、流动布局。
3.之后把组件和面板添加到窗口面板就可以;
大白话翻译:
把JFrame想象成一个桌子,桌子上面有个木板,组件和面板就是木板上的物品,我们就是把桌子上的木板换为玻璃板,然后把背景图放在玻璃板下面,把物品放在玻璃板上面;

哔哩哔哩有此视频教程

示例代码:

import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class ImageDemo {

	public static void main(String[] args) {
		JFrame jf=new JFrame("背景图片测试");
		//1.把图片添加到标签里(把标签的大小设为和图片大小相同),把标签放在分层面板的最底层;
		ImageIcon bg=new ImageIcon("src/images/bg.jpg");
		JLabel label=new JLabel(bg);
		label.setSize(bg.getIconWidth(),bg.getIconHeight());
		jf.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
		//2.把窗口面板设为内容面板并设为透明、流动布局。
		JPanel pan=(JPanel)jf.getContentPane();
		pan.setOpaque(false);
		pan.setLayout(new FlowLayout());
		//3.之后把组件和面板添加到窗口面板就可以;
		JButton btn=new JButton("测试按钮");
		pan.add(btn);
		jf.setSize(bg.getIconWidth(),bg.getIconHeight());
		jf.setLocationRelativeTo(null);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setVisible(true);
	}

}

在这里插入图片描述

  • 50
    点赞
  • 294
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
要在Java JFrame窗口添加背景图片,可以使用以下步骤: 1. 将图片文件保存在项目文件夹。 2. 在JFrame创建一个JPanel对象来包含所有的组件。 3. 创建一个ImageIcon对象,将其设置为JPanel的背景。 4. 将JPanel对象添加JFrame。 5. 调用JFrame的pack()方法来自动调整大小。 以下是一个简单的示例代码: ```java import javax.swing.*; import java.awt.*; public class JFrameWithBackground extends JFrame { public JFrameWithBackground() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 500, 500); // Create a JPanel to contain all components JPanel contentPane = new JPanel(); setContentPane(contentPane); contentPane.setLayout(null); // Load the background image ImageIcon backgroundImage = new ImageIcon("background.jpg"); // Set the background image as the JPanel's background JLabel backgroundLabel = new JLabel(backgroundImage); backgroundLabel.setBounds(0, 0, backgroundImage.getIconWidth(), backgroundImage.getIconHeight()); contentPane.add(backgroundLabel); // Add other components to the JPanel // ... // Pack and display the JFrame pack(); setVisible(true); } public static void main(String[] args) { new JFrameWithBackground(); } } ``` 在这个示例,我们创建了一个JFrameWithBackground类,继承自JFrame。在构造函数,我们首先设置JFrame的默认关闭操作和大小。然后,我们创建了一个JPanel对象,并将其设置JFrame的内容面板。我们使用null布局,以便我们可以自由地定位组件。 接下来,我们加载了背景图片,并将其设置为JPanel的背景。我们创建了一个JLabel对象来显示该图像,并将其添加到JPanel。我们还可以添加其他组件到JPanel。 最后,我们调用JFrame的pack()方法来自动调整大小,使所有组件都可以适应窗口大小,并使JFrame可见。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值