新学javaGUI界面设计,关于如何为frame窗口设置背景图片,在网上搜寻了点资料以及查了API,现将目前成果记录于此。
代码如下:
import java.awt.Container; import java.awt.FlowLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class BgTest extends JFrame{ public BgTest(){ init(); } private void init() { JLabel lbl1 = new JLabel("用户名:"); JLabel lbl2 = new JLabel("密 码:"); JTextField txt = new JTextField(10); JPasswordField pasw = new JPasswordField(10); pasw.setEchoChar('*'); JButton btn1 = new JButton("登录"); JButton btn2 = new JButton("取消"); ImageIcon img = new ImageIcon("images/bgTest.jpg"); //要设置的背景图片 JLabel imgLabel = new JLabel(img); //将背景图放在标签里。 this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE)); //将背景标签添加到jfram的LayeredPane面板里。 imgLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight()); // 设置背景标签的位置 Container contain = this.getContentPane(); ((JPanel) contain).setOpaque(false); // 将内容面板设为透明。将LayeredPane面板中的背景显示出来。 contain.setLayout(new FlowLayout()); contain.add(lbl1); contain.add(txt); contain.add(lbl2); contain.add(pasw); contain.add(btn1); contain.add(btn2); this.setTitle("背景图设置"); this.setSize(200, 200);//设置窗体大小 this.setLocation(600, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); this.setVisible(true); } public static void main(String[] args) { new BgTest(); } }
运行结果: