=========================================更新线======================================
这段时间工作一直很忙,好久没有看自己的博客,也没有想到以前写的一个小问题有这么多人看,看到评论说有点看不懂或者是出现了错误,希望贴出完整的代码,所以来更新一下。
代码是几年前写的,按照原文我又写了个简单的小栗子
package com.yolanda.fun.frame;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
public class MyFrame extends JFrame{
private JPanel contentPane;
public MyFrame() {
setBg();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 500, 710);
init();
}
public static void main(String[] args) {
new MyFrame();
}
public void init() {
contentPane = new JPanel();
contentPane.setOpaque(false);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
this.setVisible(true);
}
public void setBg(){
((JPanel)this.getContentPane()).setOpaque(false);
ImageIcon img = new ImageIcon
("D:\\picture\\miracle.jpg");
JLabel background = new JLabel(img);
this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
}
}
结果:
用户名,密码登录框我就不写啦!!!
=========================================原文分割线======================================
最近因为课设需要,在Myeclipse平台上编写了一个类似QQ的小程序,为了让窗口看起来更美观一点,在登录窗口插入了背景图片,倒腾了许久才弄出来一个十分简洁的方法,故在此记录一下以供需要的朋友们分享~~
第一步,在类中写一个函数,调用背景图片并显示出来,代码如下,
public void setBg(){
((JPanel)this.getContentPane()).setOpaque(false);
ImageIcon img = new ImageIcon
("D:\\myeclipse\\project2014\\0003MyQQ\\bg.jpg");
JLabel background = new JLabel(img);
this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
}
有人问我这个getContentPane()方法是怎么来的,这个是类继承Jframe类就可以获取了,因为这个代码写的时间很久,已经找不到了,只能这样解释一下。
第二步,在图形界面设计代码段即类的构造函数中调用该函数,
第三步,在后面的语句中加上一句,把背景面板变成透明的,
这样就成功了!!!截个成果图See see,
备注一下,这个皮卡丘头像是我用PS弄上去的,最近木有时间弄头像啦~