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

时间:2023-01-28 16:06:32

新学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窗口设置背景图片