首先,导入相关的包:
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
也可以用:
import java.awt.*;
import javax.swing.*;
接着,创建一个Java窗体对象,并设置为可见
eg: JFram frame = JFrame();//创建一个窗体
frame.setVisible(true);//设置窗体可见,默认不可见
最后编写如下代码:
/*
* 以下7行是给窗体添加背景图片
*/
ImageIcon img = new ImageIcon("E:\1"+ ".gif");//这是背景图片
JLabel imgLabel = new JLabel(img);//将背景图放在标签里。
frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。
imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());//设置背景标签的位置
Container cp=frame.getContentPane();
cp.setLayout(new BorderLayout());
((JPanel)cp).setOpaque(false); //注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。
赶快编写一个试试吧!!!
完整代码如下:
package 第八章;
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class MyFirstFrame extends JFrame {
/**
* 作者:听山谷的~
* 版本1.0
*/ private static final long serialVersionUID = 1L;
public static void main(String[] args) {
// TODO Auto-generated method stub
MyFirstFrame frame=new MyFirstFrame();
frame.setVisible(true);//设置窗体可见,默认不可见
/*
* 以下7行是给窗体添加背景图片
*/
ImageIcon img = new ImageIcon("E:\1.gif");//这是背景图片
JLabel imgLabel = new JLabel(img);//将背景图放在标签里。
frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。 imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());//设置背景标签的位置
Container cp=frame.getContentPane();
cp.setLayout(new BorderLayout());
((JPanel)cp).setOpaque(false); //注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。
}
public MyFirstFrame(){
super(); //继承父类构造方法 setTitle("利用JFrame类创建的窗体");
setBounds(100,100,315,320); //设置窗体显示位置及大小
System.out.println(getForeground());
getContentPane().setLayout(null);//设置为不采用任何布局管理器
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
}