你的位置:首页 > Java教程

[Java教程]模拟QQ登录

0

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、Ευχαριστ

 

 


 

 


0
您可能感兴趣的文章