在Java中为frame窗口设置背景图片

时间:2023-01-28 16:39:23

新学javaGUI界面设计,关于如何为frame窗口设置背景图片,在网上搜寻了点资料以及查了API,现将目前成果记录于此。

代码如下:

import java.awt.Container;
import java.awt.FlowLayout;

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

public class BgTest extends JFrame{
	
	public BgTest(){
		init();
	}

	private void init() {
		
		JLabel lbl1 = new JLabel("用户名:");
		JLabel lbl2 = new JLabel("密 码:");
		JTextField txt = new JTextField(10);
		JPasswordField pasw = new JPasswordField(10);
		pasw.setEchoChar('*');
		JButton btn1 = new JButton("登录");
		JButton btn2 = new JButton("取消");
		
		ImageIcon img = new ImageIcon("images/bgTest.jpg");
		//要设置的背景图片
		JLabel imgLabel = new JLabel(img);
		//将背景图放在标签里。
		this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
		//将背景标签添加到jfram的LayeredPane面板里。
		imgLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
		// 设置背景标签的位置
		Container contain = this.getContentPane();
		((JPanel) contain).setOpaque(false); 
		// 将内容面板设为透明。将LayeredPane面板中的背景显示出来。
		
		contain.setLayout(new FlowLayout());
		contain.add(lbl1);
		contain.add(txt);
		contain.add(lbl2);
		contain.add(pasw);
		contain.add(btn1);
		contain.add(btn2);
		
		this.setTitle("背景图设置");
		this.setSize(200, 200);//设置窗体大小
		this.setLocation(600, 300);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setResizable(false);
		this.setVisible(true);
	}

	public static void main(String[] args) {
		
		new BgTest(); 
	}
}



运行结果:

在Java中为frame窗口设置背景图片