首页 > 编程语言 >用户输入验证码程序

用户输入验证码程序

时间:2024-09-29 22:13:39浏览次数:8  
标签:setBounds String 30 验证码 private 用户 import new 输入

原码:
test.java:

package tuxing;

import javax.swing.ImageIcon;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JTextField;
import javax.swing.JPasswordField;

import java.awt.event.ActionEvent; //监听键盘与鼠标。
import java.awt.event.ActionListener;

import java.util.Random;

public class test implements ActionListener {
private JFrame f;
private JLabel lName;
private JLabel lPassword;
private JLabel lyanzheng;
private JLabel wj;
private JButton yanzheng;
private JTextField tfName;
private JTextField tfPassword;
private JTextField tfyanzheng;
private JButton jb;
private String s;
private JButton zhuce;
private ch c;
private int n;

public void designFrame(){
c=new ch();
n=0;
f=new JFrame("新课程添加");
f.setSize(400, 300);
f.setLocation(200, 200);
f.setLayout(null);

lName = new JLabel("账号:");
// 输入框
tfName = new JTextField("");
lName.setBounds(20,30,300,30);
tfName.setBounds(60,30,120,30);

lPassword = new JLabel("密码:");
// 输入框
tfPassword = new JTextField("");
lPassword.setBounds(20,70,300,30);
tfPassword.setBounds(60,70,120,30);

lyanzheng=new JLabel("验证码:");
tfyanzheng=new JTextField ("");
lyanzheng.setBounds(20,110,300,30);
tfyanzheng.setBounds(60,110,120,30);

JLabel l = new JLabel();

jb=new JButton("确定");
jb.setBounds(40,150,60,30);
jb.addActionListener(this);

Random ra=new Random();
String a="0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
StringBuffer sb=new StringBuffer();
for(int i=0;i<4;i++){
int number=ra.nextInt(62);
sb.append(a.charAt(number));
}
s = new String(sb);
yanzheng=new JButton(s);
yanzheng.setBounds(200,110,100,30);
yanzheng.setBackground(Color.gray);
yanzheng.addActionListener(this);

zhuce =new JButton("注册");
zhuce.setBounds(120,150,60,30);
zhuce.addActionListener(this);

wj=new JLabel("忘记密码?");
wj.setForeground(Color.blue);
wj.setBounds(200, 70, 100, 30);

f.add(lName);
f.add(tfName);
f.add(lPassword);
f.add(tfPassword);
f.add(lyanzheng);
f.add(tfyanzheng);
f.add(jb);
f.add(yanzheng);
f.add(zhuce);
f.add(wj);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
tfPassword.grabFocus();

}

public void actionPerformed(ActionEvent e){

if(e.getSource()jb){
if(n
0){
if(s.equals(tfyanzheng.getText())&&c.getZhanghao().equals(tfName.getText())&&c.getMima().equals(tfPassword.getText())){
JOptionPane.showMessageDialog(f, "登录成功");
}

else{
  JOptionPane.showMessageDialog(f, "登陆失败");
}

}
else if(n1){
c.setch(tfName.getText(), tfPassword.getText());
JOptionPane.showMessageDialog(f, "注册成功");
n=0;
f.setTitle("请登陆");
lyanzheng.setBounds(20,110,300,30);
yanzheng.setBounds(200,110,100,30);
tfyanzheng.setBounds(60,110,120,30);
wj.setBounds(200, 70, 100, 30);
zhuce.setBounds(120,150,60,30);
}
}
else if(e.getSource()
yanzheng){
Random ra=new Random();
String a="0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
StringBuffer sb=new StringBuffer();
for(int i=0;i<4;i++){
int number=ra.nextInt(62);
sb.append(a.charAt(number));
}
s = new String(sb);
yanzheng.setText(s);
}
else if(e.getSource()==zhuce){
n=1;
System.out.println("1");
f.setTitle("请注册");
lyanzheng.setBounds(0,0,0,0);
yanzheng.setBounds(0,0,0,0);
tfyanzheng.setBounds(0,0,0,0);
wj.setBounds(0,0,0,0);
zhuce.setBounds(0,0,0,0);
}
}

public static void main(String[] args)
{
test t=new test();
t.designFrame();
}

}

ch.java:

package tuxing;

public class ch {
private String zhanghao;
private String mima;
public ch(String zh,String mm)
{
zhanghao=zh;
mima=mm;
}

public ch()
{
}

public void setch(String zh,String mm)
{
zhanghao=zh;
mima=mm;
}

public String getZhanghao() {
return zhanghao;
}

public void setZhanghao(String zhanghao) {
this.zhanghao = zhanghao;
}

public String getMima() {
return mima;
}

public void setMima(String mima) {
this.mima = mima;
}

}

功能实现:
将界面的设计放入函数designFrame();用户的账号信息由类ch储存.随机数方面先用String储存所有的小写大写字母与09的数字(共62个字符),随后生成一个从061的随机数,随机数为多少,就用一个新的String类型储存与之相对应的字符,重复4遍得到一个包含4个字符的随机生成的验证码。

标签:setBounds,String,30,验证码,private,用户,import,new,输入
From: https://www.cnblogs.com/1222carnivore/p/18440852

相关文章

  • 浏览器输入域名回车后,7层网络结构分别做了什么?
    当你在浏览器中输入域名并按下回车时,网络请求会经过以下七层结构的处理:应用层(ApplicationLayer):浏览器通过HTTP/HTTPS协议生成请求,并将域名解析为URL。表示层(PresentationLayer):数据可能会被压缩、加密或转换为特定格式(如文本、图像等),以确保数据能够正确传输和显示......
  • 基于Django的景点预约管理系统,前端使用bootstart框架开发,包括用户和管理员两种角色
    研究背景随着旅游业的快速发展和数字化技术的进步,景区预约系统的需求日益增长。传统的现场购票模式在高峰期常常面临人流量过大、排队时间长等问题,不仅影响游客的游览体验,还对景区的管理造成一定挑战。尤其是在疫情后,人们更加重视避免聚集,景区需要合理控制人流,采用在线预约系......
  • 实验1_C语言输入输出和简单程序应用编程
    task.1//打印一个字符小人#include<stdio.h>intmain(){printf("O\n");printf("<H>\n");printf("II\n");return0;}  task.1-1&1-2#include<stdio.h>intmain(){printf(&qu......
  • 验证码
    importjavax.swing.;importjava.awt.;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Random;publicclassCaptchaGUIextendsJFrame{privateJLabelcaptchaLabel;privateJTextFieldinputField;priv......
  • Matlab 基于Transformer-LSTM-SVM多变量时序预测 (多输入单输出)
    基于Transformer-LSTM-SVM多变量时序预测(多输入单输出)你先用你就是创新!!!1.程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel!2.评价指标包含:RMSE、R2、MSE、MAE、MBE、MAPE、RPD。3.Transformer作为一种创新的神经网络结构,深受欢迎。采用Transformer编码器......
  • 实验1 C语言输入输出和简单程序编写
    task11#include<stdio.h>2intmain()3{4printf("0\n");5printf("<H>\n");6printf("II\n");7return0;8}   task1_1.c1#include<stdio.h>2intmain()3{4int......
  • 开源b2b2c商城系统流程 多用户商城系统流程图
    在选择多用户商城系统时,服务质量至关重要。商淘云多用户商城系统凭借其卓越的功能和强大的客户支持,成为了许多企业的首选。下面我们一起分析多用户商城的特性及b2b2c商城系统思维导图,文中的图大家需要的可评论“666”领取。首先,商淘云提供了全面的电商解决方案,通过配置可以满......
  • 华三设备的用户创建、ssh、telnet等的配置
    sshserverenabletelnetserverenablepublic-keylocalcreatersapublic-keylocalcreatedsauser-interfacevty04authentication-modeschemeprotocolinboundsshqulocal-usertonyclassmanagepasswordsimpleroot#12345service-typeterminalsshteln......
  • PbootCMS后台登录验证码不显示怎么回事?
    在PbootCMS后台登录时,如果验证码不显示,可能有几种原因。以下是一些常见的故障排查方法和解决方案:故障排查与解决方案1.检查浏览器设置清除缓存和Cookies:清除浏览器缓存和Cookies,尝试重新登录。禁用浏览器插件:禁用浏览器中的广告拦截插件或其他可能影响显示的插件,如A......
  • PbootCMS后台登录验证码有数值,但是看不清是怎么回事?
    当PbootCMS后台登录验证码在某些PHP版本下显示不清楚时,通常是因为PHP版本不兼容导致的。验证码背景图黑色和文字颜色深色相冲也会导致这个问题。以下是详细的解决方法:原因分析验证码背景图黑色和文字颜色深色相冲,导致验证码难以看清。这通常是由于PHP版本不兼容造成的。解决方......