在设置背景前,必须了解到JFrame分为4层,从下至上分别为RootPane、LayeredPane、ContentPane、GlassPane。其中GlassPane是默认透明的,ContentPane主要用来承载控件。
1. 创建图像:
ImageIcon icon = new ImageIcon("./img/mainFrame.png");
Image img = icon.getImage().getScaledInstance(width, height, Image.SCALE_FAST); // 图像缩放为适合Frame大小
JLabel jlabel = new JLabel(new ImageIcon(img));
jlabel.setBounds(0, 0, width, height);
f.getLayeredPane().add(jlabel, new Integer(Integer.MIN_VALUE));
JPanel jp = (JPanel) f.getContentPane();
JRootPane jp1 = (JRootPane) f.getRootPane();
jp.setOpaque(false);
jp1.setOpaque(false);
4. 去除标题栏 : f.setUndecorated(true);
btn.setBorderPainted(false); // 消除边框
btn.setContentAreaFilled(false); // 消除内容域,即中间的那一块