Swing编程---添加背景图片的方法

总结:看下我的运行图片。这个图片很重要。很能说明问题。它的frame就是一个小图片。就是背景。么手贱把它放大。

在微软的操作系统上,你放多大,窗口就有多大,你看到背景就成了小图片,就会误以为不是背景。

package com.bc;

//添加被背景图片

import javax.swing.JLabel;
import javax.swing.JButton;

import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class yut extends JFrame {

	public static void main(String[] args) {
		yut y = new yut();
		// y.getContentPane().setBackground(Color.red);
		// y.setVisible(true);
	}

	public yut() {
		JFrame frame = new JFrame("背景图片");
		ImageIcon ico = new ImageIcon("D:\21.jpg");
		JLabel imagelabel = new JLabel(ico);
		imagelabel.setBounds(0, 0, ico.getIconWidth(), ico.getIconHeight());
		// 把内容窗格转换为JPanel,否则不能用setOpadut方法透明
		JPanel imagepanel = (JPanel) frame.getContentPane();// 将背景图排脓放在标签里
		imagepanel.setOpaque(false);
		imagepanel.setLayout(new FlowLayout());// panel默认的布局管理器为:FlowLayout()
		imagepanel.add(new JButton("yes"));
		frame.getLayeredPane().setLayout(null);
		frame.getLayeredPane().add(imagelabel, new Integer(Integer.MIN_VALUE));// 你妹这次对了,表示iamgelabel.永远是这个容器的最后一个组件
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 也就是说,imagelabel永远在getlayeredpane的最底层
		 frame.setSize(ico.getIconWidth(), ico.getIconHeight());
		
		// frame.setSize(544, 555);
		frame.setVisible(true);

	}

}

  

原文地址:https://www.cnblogs.com/langlove/p/3432391.html