首页 > 编程语言 >Java swing 实现QQ登录注册页面

Java swing 实现QQ登录注册页面

时间:2023-09-17 23:11:55浏览次数:30  
标签:QQ setBounds Java frame jp add swing new JLabel

  代码如下
1 package com.lty; 2 import javax.swing.*; 3 import java.awt.*; 4 import java.awt.event.ActionEvent; 5 import java.awt.event.ActionListener; 6 import java.util.Random; 7 8 public class QQLoginPage { 9 private JFrame frame; 10 private char[] codeSequence = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 11 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '2', '3', '4', '5', '6', '7', '8', '9' }; 12 private JTextField accountField; 13 Font f1=new Font("宋体", Font.PLAIN, 14); //设置字体 14 private JPasswordField passwordField; 15 private JLabel captchaLabel; 16 private JTextField captchaField; 17 18 public QQLoginPage() { 19 JFrame.setDefaultLookAndFeelDecorated(true); 20 frame = new JFrame("QQ登录"); 21 frame.setSize(350, 200); 22 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 23 frame.setLayout(new FlowLayout()); 24 frame.setLocation(700,500); 25 frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 26 JLabel jp_jlb3=new JLabel("注册账号"); 27 jp_jlb3.setFont(f1); 28 jp_jlb3.setForeground(Color.BLUE); 29 jp_jlb3.setBounds(300, 10, 70,25); 30 JLabel jp_jlb4=new JLabel("找回密码"); 31 jp_jlb4.setFont(f1);//设置"找回密码"字体 32 jp_jlb4.setForeground(Color.BLUE); //设置"找回密码"字体颜色 33 jp_jlb4.setBounds(300, 43, 70,25); 34 JLabel accountLabel = new JLabel("账户:"); 35 accountField = new JTextField("账号/手机号",20); 36 accountField.setForeground(Color.LIGHT_GRAY); 37 accountField.setBounds(118, 11, 170,25); 38 JLabel passwordLabel = new JLabel("密码:"); 39 passwordField = new JPasswordField(20); 40 passwordField.setBounds(118, 11, 170,25); 41 frame.add(accountLabel); 42 frame.add(accountField); 43 frame.add(jp_jlb3); 44 frame.add(passwordLabel); 45 frame.add(passwordField); 46 frame.add(jp_jlb4); 47 captchaLabel = new JLabel(); 48 49 50 JLabel captchaInputLabel = new JLabel("验证码:"); 51 captchaField = new JTextField(10); 52 captchaField.setBounds(240,187,175,30); 53 frame.add(captchaInputLabel); 54 frame.add(captchaField); 55 56 JButton refreshButton = new JButton("刷新"); 57 refreshCaptcha(); 58 refreshButton.addActionListener(new ActionListener() { 59 @Override 60 public void actionPerformed(ActionEvent e) { 61 refreshCaptcha(); 62 } 63 }); 64 65 JButton loginButton = new JButton("登录"); 66 loginButton.addActionListener(new ActionListener() { 67 @Override 68 public void actionPerformed(ActionEvent e) { 69 String account = accountField.getText(); 70 String password = new String(passwordField.getPassword()); 71 String captchaInput = captchaField.getText(); 72 73 if (validateCaptcha(captchaInput)) { 74 // 在这里执行登录逻辑 75 System.out.println("账户:" + account); 76 System.out.println("密码:" + password); 77 System.out.println("验证码:" + captchaInput); 78 JOptionPane.showMessageDialog(frame, "登录成功"); 79 } else { 80 JOptionPane.showMessageDialog(frame, "验证码错误", "错误", JOptionPane.ERROR_MESSAGE); 81 refreshCaptcha(); 82 } 83 } 84 }); 85 JCheckBox jp_jcb1=new JCheckBox("记住密码"); 86 jp_jcb1.setFont(f1); 87 jp_jcb1.setBounds(114, 78, 90,20); 88 JCheckBox jp_jcb2=new JCheckBox("自动登录"); 89 jp_jcb2.setFont(f1); 90 jp_jcb2.setBounds(206, 78, 90,20); 91 JButton jp_jb2=new JButton("注册"); 92 jp_jb2.setFont(f1); 93 jp_jb2.setBounds(95, 120, 65,21); 94 frame.add(captchaLabel); 95 frame.add(refreshButton); 96 frame.add(jp_jcb1); 97 frame.add(jp_jcb2); 98 frame.add(loginButton); 99 frame.add(jp_jb2); 100 frame.setResizable(false); 101 frame.setIconImage(new ImageIcon("image/image.png").getImage()); 102 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 103 // frame.pack(); 104 frame.setVisible(true); 105 } 106 107 private void refreshCaptcha() { 108 Random random = new Random(); 109 String captcha=""; 110 for(int i=0;i<4;i++){ 111 captcha+=codeSequence[random.nextInt(codeSequence.length)]; 112 } 113 captchaLabel.setText(String.valueOf(captcha)); 114 } 115 116 private boolean validateCaptcha(String captchaInput) { 117 String captcha = captchaLabel.getText(); 118 return captcha.equals(captchaInput); 119 } 120 121 public static void main(String[] args) { 122 new QQLoginPage(); 123 } 124 }

运行结果如下

 可以刷新验证码,运用的流式结构。

标签:QQ,setBounds,Java,frame,jp,add,swing,new,JLabel
From: https://www.cnblogs.com/litianyu1969/p/17710090.html

相关文章

  • List,Set,Map三者的区别,Java 创建对象有几种方式
    一、List,Set,Map三者的区别List(对付顺序的好帮手):List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象Set(注重独一无二的性质):不允许重复的集合。不会有多个元素引用相同的对象。Map(用Key来搜索的专家):使用键值对存储。Map会维护与Key有关联的值。两个Key可......
  • Java数据结构的学习规划
    前言最近在备考软考初级程序员(因为没有把握能够过中级所以暂时先报考初级)所以暂时停下了数据结构学习的进程。但是看到老师布置的新作业决定继续学习!!我想学习数据结构的原因,一部分是因为数据结构是程序设计的基础,学好数据结构和算法可以写出更好的算法。另外如果在以后我觉得自己......
  • 个人项目-java实现论文查重(更新中)
    本次作业GitHub项目链接:https://github.com/zzz-muxin/PlagiarismCheck作业详情这个作业属于哪个课程工程概论这个作业要求在哪里作业要求这个作业的目标学会利用GitHub进行项目开发,完成一个工程项目开发的详细过程需求题目:论文查重描述如下:设计一个论......
  • java后端学习路线
    java后端学习路线规划图下面图片规划参照了网上和以及自己知道的来规划的。(有可能学习路线不全)*学习视频:b站(我喜欢看尚硅谷的),网上还有很多看自己喜欢那个老师的方式,还有黑马,千锋等等。moon课。*学习资料:学习书本,网上资料,csdn,播客园等。*学习笔记:软件记Typora(代码,文章过......
  • 用户登录图形化界面(java)
    一、题目 二、源码(1)USER类(定义用户,包括username,password)1packagepicture;23publicclassUSER{4privateStringusername;5privateStringpassword;67publicUSER(Stringusername,Stringpassword){8this.username=user......
  • Java的常用@SuppressWarnings注解
    总所周知,IDE经常会提示一些警告,通常使用@SuppressWarnings注解来忽略虽然这样做并不是很推荐,但对于一些不想改动的代码还是需要的,所以在这里做个我常用的记录值备注ResultOfMethodCallIgnored返回值忽略unused未使用的变量DuplicatedCode重复的代码uncheck......
  • Linux安装java环境
    下载JavaJDK1.8:访问Oracle官方网站或OpenJDK项目网站,下载适用于你的Linux系统的JavaJDK1.8版本的安装包(通常是.tar.gz格式)。解压安装包:打开终端,进入下载目录,使用以下命令解压安装包:tar-zxvfjdk-8uXXX-linux-x64.tar.gz请将“jdk-8uXXX-linux-x64.tar.gz”替换为你下载的安装......
  • java基础——随笔01
    数组实例:packageorg.example.common;publicclassZongJie{//数组作为函数参数publicstaticvoidprintArray(int[]array){System.out.println(array.length);System.out.println("--------------------111");System.ou......
  • Java反射
    声明:本文记录基于JDK8(8u211)的继承使用规则如果存在错误,请发邮件至[email protected]联系我创作时间:2023-09-1617:00:21创作情况:失业第46天,地处成都金牛区创作者:一口吃不成胖子反射准备工作,以供对照描述与代码,想看结论直接到文末尾父类packagecom.beans;/***抽象......
  • 【java基础】Token令牌生成 token加密串 生成token Aes加密 Base64加密 JWT 【附
    先看效果:Token令牌-生成工具包括:头部(header)+载荷(payload)+签证(signature) 可以自定义加密盐: 源码:地址一:GitLab地址二:123盘地址三:百度盘提取码:666 ......