java中设置背景图片

时间:2022-11-17 19:08:40

在java编程中,图形用户界面的开发没有像delphi,VB,.net平台那么轻松,它需要更多的代码编写来处理。许多人在设置面板的背景图象时有一点障碍,我在开发java图形用户界面时也有过这种情况。其实java的JFrame中有层:最底层是JRootPane,上一层是:JlayerPane,是层就是:ContentPane。我们拖放的控件就是在ContentPane上,知道这个大概后,我们可以这样设置面板的背景图象,以下是相关代码。          URL url1 = getClass().getResource("/image/甘蔗6.gif");
           //这里是获取背景图象的路径。
           ImageIcon img = new ImageIcon(url1);

             这里是用源图片构造一个ImageIcon对象来实例化标签。  
            JLabel imgLabel = new JLabel(img);
            this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));            
            //这里是把标签放在layeredPane上,它是在第二层的。      
            imgLabel.setBounds(0,0,img.getIconWidth(),img.getIconHeight());            
            //这里设置标签的尺寸,也就是背景图象的大小啦
             contentPane.setOpaque(false);            

这一步很重要,它把内容面板设置为透明,这样整个柜架的背景就不是内容面板的背景色了,而是第二层中标签的图象了,大成告成了。

小实例:
import java.util.*;
import javax.swing.*;
public class Test extends JFrame {
private JPanel pan;
private JLabel labName;
private JTextField tfName;
private JLabel labPass;
private JPasswordField tfPass;
private JButton butConfirm;
private ImageIcon ii;
private JLabel lab;
Test(){
  this.setBounds(200, 200, 300, 200);
  pan  = new JPanel();
  labName = new JLabel("用户名");
  tfName = new JTextField(20);
  labPass = new JLabel("密     码");
  tfPass = new JPasswordField(20);
  butConfirm = new JButton("SAVE");
  pan.add(labName);
  pan.add(tfName);
  pan.add(labPass);
  pan.add(tfPass);
  pan.add(butConfirm);
  ii  = new ImageIcon("1.jpg");//你只需要把这里的图片1.jpg给改了就可以了
  lab  = new JLabel(ii);
  lab.setBounds(0, 0,ii.getIconWidth(), ii.getIconHeight());
  this.getLayeredPane().setLayout(null);
  this.getLayeredPane().add(lab, new Integer(Integer.MIN_VALUE));
  this.setContentPane(pan);
  pan.setOpaque(false);
  this.setVisible(true);
}
public static void main(String args[]){
  new Test();
}

}