返回本章節
返回作業目錄
需求說明:
使用Swing佈局管理器和常用控件,實現仿QQ登錄界面
實現思路:
創建登錄界面的類QQLogin,該類繼承父類JFrame,在該類中創建無參數的構造方法,在構造方法中,設置窗體大小爲寬355、高265,窗體的佈局格式爲絕對定位,通過this.setResizable(false)方法設置窗體大小不能改變。
創建初始化方法,在該方法中,創建圖10.12中的相關組件,並在該方法中合理設置各組件之間的位置。在構造方法中調用該初始化方法。
素材鏈接:http://pan-yz.chaoxing.com/share/info/deecb7261a4cc4ea
實現代碼:
package com.tencent.qq;
import javax.swing.JFrame;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class QQLogin extends JFrame {
public QQLogin() {
this.setBounds(700, 300, 600, 454);
this.setTitle("QQ登錄界面");
this.setLayout(null);
this.setResizable(false);
Icon icon1 = new ImageIcon("img/logo.jpg");
JLabel img1 = new JLabel(icon1);
img1.setBounds(0, 0, 600, 154);
Icon icon2 = new ImageIcon("img/icon.jpg");
JLabel img2 = new JLabel(icon2);
img2.setBounds(80, 170, 110, 100);
JTextField userTest = new JTextField();
userTest.setBounds(200, 185, 250, 30);
JPasswordField pawTest = new JPasswordField();
pawTest.setBounds(200, 230, 250, 30);
JLabel zczh = new JLabel("註冊賬號");
zczh.setBounds(460, 100, 200, 200);
JLabel zhmm = new JLabel("找回密碼");
zhmm.setBounds(460, 145, 200, 200);
JComboBox ComboBox = new JComboBox();
ComboBox.addItem("在線");
ComboBox.addItem("離開");
ComboBox.addItem("忙碌");
ComboBox.addItem("隱身");
ComboBox.setBounds(95, 280, 85, 25);
JCheckBox jzmm = new JCheckBox("記住密碼");
jzmm.setBounds(220, 270, 100, 50);
JCheckBox zddl = new JCheckBox("自動登錄");
zddl.setBounds(350, 270, 100, 50);
JButton dzh = new JButton("多賬號");
dzh.setBounds(50, 340, 105, 30);
JButton sz = new JButton("設置");
sz.setBounds(180, 340, 105, 30);
JButton dl = new JButton("登錄");
dl.setBounds(420, 340, 105, 30);
this.add(img1);
this.add(img2);
this.add(userTest);
this.add(pawTest);
this.add(zczh);
this.add(zhmm);
this.add(ComboBox);
this.add(jzmm);
this.add(zddl);
this.add(dzh);
this.add(sz);
this.add(dl);
}
public static void main(String[] args) {
QQLogin login = new QQLogin();
login.setVisible(true);
}
}