首页 > 编程语言 >基于JAVA绘制验证码

基于JAVA绘制验证码

时间:2024-10-01 12:47:51浏览次数:8  
标签:info 用户名 JAVA 验证码 密码 Java null 绘制

目录

概要

整体架构流程

代码解释

Java绘图

注意事项:

Swing

演示效果

概要

        Java绘图通常指的是在Java应用程序中创建和显示图形、图像和其他视觉元素。

        Swing是Java的一个图形用户界面工具包,它提供了一套丰富的组件来构建桌面应用程序,包括用于绘图的组件和功能。

整体架构流程

图片显示

Graphics2D继承Graphics类,实现基本绘图。

文字处理

使用Font类封装了字体的大小,样式等属性,该类在java.awt包进行定义。

面板

进行显示和布局,Jpanel面板:标签,图片,按钮,列表。

对话框

点击对应按钮弹出小型对话框,也可以在控制台输入信息形成通知框。

代码解释

Java绘图

验证码:

1.随机生成26个字母并施行更新

2.进行大小 颜色 位置的的排序

3.在面板中画出验证码

1.使用Font类封装了字体的大小,样式等属性

2.验证码中的图片:利用ImageIO可以读取本地磁盘的图片文件

注意事项:

  • 确保图片路径正确,否则img将为null

Swing

  1. 添加事件监听器:为按钮添加一个ActionListener,当按钮被点击时执行相应的操作。
  2. 获取用户输入:从文本框中获取用户名、密码和验证码。
  3. 验证输入:检查用户名、密码和验证码是否为空,以及验证码是否正确。
  4. 显示登录信息:根据验证结果,通过对话框显示相应的登录信息.

    private void loginAction() {
        button_1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String username = nameText.getText(); // 从文本框中获取用户名
                String password = new String(pwdText.getPassword()); // 从密码框中获取密码
                String code = codeText.getText(); // 获得输入的验证码
                String info = ""; // 用户登录信息

                // 判断用户名是否为null或空的字符串
                if (username == null || username.isEmpty()) {
                    info = "用户名为空!";
                } 
                // 判断密码是否为null或空的字符串
                else if (password == null || password.isEmpty()) {
                    info = "密码为空!";
                } 
                // 判断验证码是否为null或空的字符串
                else if (code == null || code.isEmpty()) {
                    info = "验证码为空!";
                } 
                // 判断验证码是否正确
                else if (!code.equals("预期的验证码")) { // 假设有一个方法getNum()来获取验证码
                    info = "验证码错误!";
                } 
                // 如果用户名与密码均为"soft",则登录成功
                else if (username.equals("soft") && password.equals("soft")) {
                    info = "恭喜,登录成功";
                } else {
                    info = "用户名或密码错误!";
                }

                JOptionPane.showMessageDialog(null, info); // 通过对话框弹出用户登录信息
            }
        });
    }

演示效果

标签:info,用户名,JAVA,验证码,密码,Java,null,绘制
From: https://blog.csdn.net/weixin_68226434/article/details/142636346

相关文章

  • springboot基于java的智慧点餐系统(源码+文档+调试+vue+前后端分离)
    收藏关注不迷路!!......
  • 加解密demo(java、php)
    数据格式*@paramargs*撞库---入参加密字段signs加密前格式**{*"mobileMask":"134123412**",*"city":"武汉",*"system":"qxh"*}**撞库---返回加密字......
  • 《Java 基础篇》三:排序方式
    Author:ACatSmilingSince:2024-10-01在Java中经常会涉及到对象数组等的排序问题,那么就涉及到对象之间的比较问题。Java实现对象排序的方式有两种:自然排序:java.lang.Comparable。定制排序:java.util.Comparator。自然排序自然排序:java.lang.Comparable接口强行对实......
  • java计算机毕业设计本尚化妆品网站(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着电子商务的蓬勃发展和消费者对美妆产品需求的日益增长,化妆品电商网站逐渐成为人们购买化妆品的重要渠道。本尚化妆品网站作为一个新兴的化妆品电......
  • Java 死锁及避免讲解和案例示范
    在大型分布式系统中,死锁是一种常见但难以排查的并发问题。特别是在Java领域,死锁问题可能导致系统崩溃或卡顿。本文将以电商交易系统为例,详细讲解如何识别和避免Java程序中的死锁问题,确保系统高效运行。1.什么是死锁?死锁是指多个线程相互持有对方所需的资源,且都在等待......
  • 《Java 基础篇》一:入门
    Author:ACatSmilingSince:2024-09-30bit和byte计算机本质是一系列的电路开关。每个开关存在两种状态:开(on)和关(off)。如果电路是开的,它的值是1,如果电路是关的,它的值是0。一个0或者一个1存储为一个比特(bit),是计算机中最小的存储单位。计算机中最基本的存储单元是......
  • 《Java 基础篇》二:面向对象
    Author:ACatSmilingSince:2024-09-30概述面向过程(POP)与面向对象(OOP):二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。面向对......
  • Java Stream介绍
    JavaStreamAPI是Java8引入的一项强大功能,旨在简化集合数据的处理。它允许开发者以更简洁和声明性的方式执行复杂的数据操作。以下是对JavaStreamAPI的详细介绍,包括其核心概念、常见操作、性能优化以及最佳实践。一核心概念1.1流(Stream):流是一种对数据序列的抽......
  • Java 中的 volatile和synchronized和 ReentrantLock区别讲解和案例示范
    在Java的并发编程中,volatile、synchronized和ReentrantLock是三种常用的同步机制。每种机制都有其独特的特性、优缺点和适用场景。理解它们之间的区别以及在何种情况下使用哪种机制,对提高程序的性能和可靠性至关重要。本文将详细探讨这三种机制的特性、使用场景及示例......
  • JavaScript笔记
    基操数据类型原始类型对象类型MapandSet流程控制函数及面向对象函数方法常用内部对象面向对象编程(OOP)操作BOM元素操作DOM元素(I)操作表单jQuery基操js作为一种脚本语言,可以嵌入到HTML页面中js是双标签,可以写多行,也可以写一行内部标签<script>......