你的位置:首页 > Java教程

[Java教程]Java怎么添加背景图片


首先,导入相关的包:

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);     }

}