zoukankan      html  css  js  c++  java
  • 模拟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、Ευχαριστ


     

  • 相关阅读:
    正整数分解质因数
    水仙花数
    键入任意整数,将之从小到大输出
    有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少
    输入某年某月某日,判断这一天是这一年的第几天?
    java 日期增加
    oracle数据库 ORA-01461: can bind a LONG value only for insert into a LONG column解决方案
    JAVA实现图片叠加效果
    JAVA_GET请求URL
    sqlserver-触发器-判断更新了哪个字段。
  • 原文地址:https://www.cnblogs.com/YUJIE666/p/9865989.html
Copyright © 2011-2022 走看看