JavaDailyReports10_11
**********************************
验证码 AWT Swing
1 package nanshen;
2
3 import java.awt.Container;
4 import java.awt.event.ActionEvent;
5 import java.awt.event.ActionListener;
6 import java.util.Random;
7
8 import javax.swing.JButton;
9 import javax.swing.JFrame;
10 import javax.swing.JLabel;
11 import javax.swing.JOptionPane;
12 import javax.swing.JPanel;
13 import javax.swing.JPasswordField;
14 import javax.swing.JTextField;
15
16 public class test10 {
17 public static void main(String[] args) {
18 JFrame jf=new JFrame();
19 JButton jb=new JButton("登录");
20 /*
21 * JLabel 用于显示一个标签信息
22 *
23 */
24 JLabel idname=new JLabel("用户名"); //实例化对象
25 JLabel pastword=new JLabel("密 码");
26 JLabel yzword=new JLabel("验证码");
27 /*
28 * 定义数组生成验证码随机数
29 *
30 */
31 int[] random=new int[6];
32
33 Random r=new Random(System.currentTimeMillis());
34
35 for(int i=0;i<6;i++)
36 {
37 random[i]=r.nextInt(10)%9+1;
38 }
39 /*
40 * 把6位随机数存储为字符串形式
41 *
42 */
43 String str="";
44 for(int i=0;i<6;i++)
45 {
46 str=str+random[i];
47 }
48
49 final String Str=str;
50
51 JLabel yzWord=new JLabel(str);
52
53 JTextField idtxt=new JTextField(15);//实例化用户名文本框
54
55 JPasswordField wordtxt=new JPasswordField(15);//实例化密码框
56
57 JTextField yzwordtxt=new JTextField(15);
58
59 wordtxt.setEchoChar('*');//将输入密码框中的密码以*显示出来
60
61 jf.setBounds(450,350,350,250);
62
63 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
64 Container c=jf.getContentPane();
65
66 c.setLayout(null);
67 c.add(jb);
68 c.add(idname);
69 c.add(idtxt);
70 c.add(pastword);
71 c.add(wordtxt);
72 c.add(yzword);
73 c.add(yzwordtxt);
74 c.add(yzWord);
75
76 idname.setBounds(10,40,50,18);
77 pastword.setBounds(10,80,50,18);
78 yzword.setBounds(10,120,50,18); //标签“验证码”
79 yzWord.setBounds(60,160,80,18); //生成的随机数验证码
80
81
82 idtxt.setBounds(60,40,200,18);
83 wordtxt.setBounds(60,80,200,18);
84 yzwordtxt.setBounds(60,120,200,18);
85
86 jb.setBounds(200,150,60,40);
87
88 jb.addActionListener(new ActionListener() {
89
90 public void actionPerformed(ActionEvent arg0)
91 {
92 if(idtxt.getText().trim().equals("YCW000429")
93 &&new String(wordtxt.getPassword()).equals("123456")
94 &&yzwordtxt.getText().trim().equals(Str))
95 {
96 JOptionPane.showMessageDialog(null,"登录成功");
97 }
98 if(yzwordtxt.getText().trim().equals(Str)
99 &&(!idtxt.getText().trim().equals("YCW000429")
100 ||!(new String(wordtxt.getPassword()).equals("123456"))))
101 {
102 JOptionPane.showMessageDialog(null,"用户名或密码错误");
103 }
104 if(idtxt.getText().trim().equals("YCW000429")
105 &&new String(wordtxt.getPassword()).equals("123456")
106 &&!yzwordtxt.getText().trim().equals(Str))
107 {
108 JOptionPane.showMessageDialog(null,"验证码错误");
109 }
110 }
111 });
112 jf.setVisible(true);
113 }
114 }

JavaDailyReports10_11的更多相关文章
随机推荐
- 欢迎使用CSDN-markdown编辑器(这个只能看到一次保存一下)
欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...
- moviepy音视频开发:audio_loop实现音频内容循环重复
☞ ░ 前往老猿Python博文目录 ░ 概述 moviepy的audio_loop函数用于将音频剪辑内容循环一定次数,返回值是原剪辑内容重复指定次数对应的剪辑. 调用语法: audio_loop(a ...
- Robot framework 环境搭建+图标处理
场景:随着现在项目各种赶工,很多时候界面上的功能还没有实现,这时就可以先对接口进行验证,提早发现一些和预期不一致的错误. Robot framework需要的几个知识点: 测试库:RF是大树,测试库就 ...
- LeetCode初级算法之数组:48 旋转图像
旋转图像 题目地址:https://leetcode-cn.com/problems/rotate-image/ 给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: ...
- 冲刺Day5
每天举行站立式会议照片: 前后端交互: 昨天已完成的工作: 1.确认搜索栏界面 2.订单模块的大部分代码 3.用户模块的大部分代码 4.测试登录注册功能 燃尽图: 今天计划完成的工作: 成员 任务 高 ...
- MySQL日期和时间函数汇总
本文基于MySQL8.0 本文介绍MySQL关于日期和时间操作的函数. 日期和时间函数 函数 描述 ADDDATE() 给日期值添加时间值 ADDTIME() 添加time CONVERT_TZ() ...
- 题解-NOI2016 优秀的拆分
NOI2016 优秀的拆分 \(T\) 组测试数据.求字符串 \(s\) 的所有子串拆成 \(AABB\) 形式的方案总和. 数据范围:\(1\le T\le 10\),\(1\le n\le 3\c ...
- git clone GitLab 工程报错Repository not found
有时使用git拉取gitlab上的项目时会出现如下的错误信息:Repository not found remote: Repository not found.fatal: repository ' ...
- c++笔试题3
一.[阿里C++面试题]1.如何初始化一个指针数组.答案: 错题解析:首先明确一个概念,就是指向数组的指针,和存放指针的数组. 指向数组的指针:char (*array)[5];含义是一个指向存放5个 ...
- 精尽Spring MVC源码分析 - 一个请求的旅行过程
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...