前言
需要预先准备没有背景图的Swing GUI登录界面
可以参考
在IntelliJ IDEA中放弃GUI Form使用JFormDesigner6.0.2设计Swing登录界面
Swing登录功能(一)在Eclipse中使用WindowBuilder拖拽出一个登录界面.ch001
正文
界面有了
没有背景图始终感觉缺,那就来个背景图吧。
技巧:重写登录Panel的paintComponent方法
示例使用了Swing登录功能(一)在Eclipse中使用WindowBuilder拖拽出一个登录界面.ch001中的Login
效果(Jpanel背景不透明,跟着看下面)
关键代码
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
try {
BufferedImage img = ImageIO.read(getClass().getResource("/bg.png"));
g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
};
}
bg.png
此时需要把面板的背景设置为透明
setBackground(null);
setOpaque(false);
但是我们这个Jpanel里面有很多所以所有的Jpanel都使用我们自定义的MyPanel
package login;
import javax.swing.JPanel;
public class MyPanel extends JPanel{
public MyPanel() {
setOpaque(false);
setBackground(null);
}
}
最终效果
Swing GUI设置登录界面的背景图片并把内容放到图片上面的功能就完成了,完整源码请到资源中下载