模擬QQ登錄


2018-10-28 15:54:38 開始寫

 


 

 


 

  1 import javax.swing.JFrame;
  2 import javax.swing.JPanel;
  3 import javax.swing.border.EmptyBorder;
  4 import javax.swing.JLabel;
  5 import javax.swing.JOptionPane;
  6 
  7 import java.awt.Font;
  8 import javax.swing.JTextField;
  9 import javax.swing.SwingConstants;
 10 import javax.swing.JButton;
 11 import javax.swing.JPasswordField;
 12 
 13 import java.awt.event.ActionEvent;
 14 import java.awt.event.ActionListener;
 15 import javax.swing.ImageIcon;
 16 import java.awt.Color;
 17 
 18 public class Login extends JFrame {
 19     private JPanel contentPane; //面板
 20     private JTextField tName;//賬號輸入框
 21     private JPasswordField passwordField; //密碼輸入框
 22     private JLabel lblBanner; //QQ登錄圖片
 23     public static void main(String[] args) {
 24         // TODO Auto-generated method stub
 25         Login frame = new Login(); //實例化Login
 26         frame.setVisible(true); //使窗體顯示
 27     }
 28     public Login() { //無參構造方法
 29         setResizable(false); //窗口邊界不可拉伸
 30         setTitle("QQ登錄窗口");//設置窗口標題
 31         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉並退出
 32         setBounds(100, 100, 406, 289);//初始位置及大小
 33         
 34         contentPane = new JPanel();//實例化面板
 35         contentPane.setBackground(Color.white);//背景顏色
 36         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));//外邊距
 37         setContentPane(contentPane);//將面板放進窗口
 38         contentPane.setLayout(null);//布局方式
 39         
 40         JLabel lblName = new JLabel("用戶名:"); //賬號標簽
 41         lblName.setFont(new Font("幼圓", Font.PLAIN, 16));//標簽字體 類型 大小
 42         lblName.setBounds(115, 144, 64, 18);//初始位置及大小
 43         contentPane.add(lblName); //將標簽添加進面板
 44         
 45         tName = new JTextField();//實例化賬號輸入框
 46         tName.setBounds(180, 143, 156, 21);//初始位置及大小
 47         contentPane.add(tName);//添加進面板
 48         tName.setColumns(10);//最大輸入列數
 49         
 50         tName.addActionListener(new ActionListener() { // 添加動作監聽的事件
 51             @Override
 52             public void actionPerformed(ActionEvent e) { // 發生操作時
 53                 passwordField.requestFocus(); //當寫完賬號后回車,自動跳轉到密碼框
 54             }
 55         });
 56         
 57         JLabel lblPwd = new JLabel("密碼:");//密碼標簽
 58         lblPwd.setHorizontalAlignment(SwingConstants.RIGHT);//水平居中
 59         lblPwd.setFont(new Font("幼圓", Font.PLAIN, 16));//字體
 60         lblPwd.setBounds(125, 175, 54, 15);//位置大小
 61         contentPane.add(lblPwd);//添加
 62         
 63         passwordField = new JPasswordField();//實例化
 64         passwordField.setBounds(180, 172, 156, 21);//位置大小
 65         contentPane.add(passwordField);//添加
 66         passwordField.addActionListener(new ActionListener() { // 添加動作監聽的事件,輸入完密碼后回車,作用和登錄按鈕相同
 67             @Override
 68             public void actionPerformed(ActionEvent e) { // 發生操作時
 69                 if (tName.getText().equals("yujie") && passwordField.getText().equals("yujie")) { // “登陸成功”的條件
 70                     JOptionPane.showMessageDialog(null, "登錄成功!", "Success", JOptionPane.INFORMATION_MESSAGE); // 彈出框:“登陸成功!”
 71                 } else if (tName.getText().equals("") || passwordField.getText().equals("")) { // 文本框為空時
 72                     JOptionPane.showMessageDialog(null, "用戶名或密碼不能為空!", "Warning", JOptionPane.WARNING_MESSAGE); // 彈出框:“用戶名或密碼不能為空!”
 73                 } else { // 以上條件都不滿足的時候
 74                     JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤!", "Error", JOptionPane.ERROR_MESSAGE); // 彈出框:“用戶名或密碼錯誤!”
 75                 }
 76             }
 77         });
 78         
 79         JButton btnLogin = new JButton("登  錄"); //登錄按鈕
 80         btnLogin.addActionListener(new ActionListener() { // 添加動作監聽的事件
 81             @Override
 82             public void actionPerformed(ActionEvent e) { // 發生操作時
 83                 if (tName.getText().equals("yujie") && passwordField.getText().equals("yujie")) { // “登陸成功”的條件
 84                     JOptionPane.showMessageDialog(null, "登錄成功!", "Success", JOptionPane.INFORMATION_MESSAGE); // 彈出框:“登陸成功!”
 85                 } else if (tName.getText().equals("") || passwordField.getText().equals("")) { // 文本框為空時
 86                     JOptionPane.showMessageDialog(null, "用戶名或密碼不能為空!", "Warning", JOptionPane.WARNING_MESSAGE); // 彈出框:“用戶名或密碼不能為空!”
 87                 } else { // 以上條件都不滿足的時候
 88                     JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤!", "Error", JOptionPane.ERROR_MESSAGE); // 彈出框:“用戶名或密碼錯誤!”
 89                 }
 90             }
 91         });
 92         btnLogin.setFont(new Font("幼圓", Font.PLAIN, 16));//按鈕字體
 93         btnLogin.setBounds(125, 216, 156, 23);//位置大小
 94         contentPane.add(btnLogin);//添加
 95         
 96         
 97         lblBanner = new JLabel("");//用於添加QQ界面圖片
 98         lblBanner.setIcon(new ImageIcon(Login.class.getResource("QQLogin.png")));//圖標
 99         lblBanner.setBounds(0, 0, 400, 129);//位置大小
100         contentPane.add(lblBanner);//添加
101         
102         JLabel lblIcon = new JLabel("");//用於添加頭像
103         lblIcon.setIcon(new ImageIcon(Login.class.getResource("yujie.png")));//圖標
104         lblIcon.setBounds(56, 140, 55, 55);//位置大小
105         contentPane.add(lblIcon);//添加
106     }
107 }

說明:

首先注釋很詳細。

登錄三種情況:

一種是無輸入,彈出警告

一種的輸入錯誤,彈出錯誤

最后是輸入賬號密碼都為yujie,yujie,彈出成功


感謝閱讀(謝謝、Thank you、Salamat Do(撒拉瑪特朵)、あリがCám o*n(嘉蒙)とゥ(阿里嘎都)、감사합니다 (勘三哈咪瘩)、terima Kasih( 

得力馬卡系)、kob-khun(寇布庫恩)、dhanyavaad(達尼阿瓦德)、toda(透達)、te?ekkür ederim(特謝庫爾埃戴里姆)、 

Dzie,kuje(以庫以而)、Spasibo(思巴喜柏)、Danke(但可)、shokran(休克朗)、Obrigada(歐布哩嘎搭)、dank u(當Q)、
Merci(梅呵西)、Gracias(格拉喜亞思)、Grazie(格啦姬)、Благодарности、Tak、Kiitos、Díky、Hvala、Mul?umesc
、Takk、Ευχαριστ

 

 


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM