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的更多相关文章
随机推荐
- Docker 跨平台在 netCore 中的从入门到部署
前言 从题目我们可以看的出,今天是五部曲的第三部,你可能会好奇,为啥没有见到前两部呢?这里我简单说下: 1.跨平台第一部曲:MySql 如果你看我的所有开源项目,应该能发现我已经全部迁移到了Mysql ...
- Codeforces Round #688(Div 2) D. Checkpoints
思路 第一步,先推导1,0,0,--,0,就是1后面跟了n-1个0的时候 所需要的期望步数 封闭式推导 \(f_n\)代表从n关开始直接通关需要的步数的期望 n为1的情况,即就只有一个1 \(f_1= ...
- 译文:二进制序列类型 --- bytes, bytearray
在进行一些内置函数调用时,会发现bytes类型的参数或返回值,这个类型老猿前面没有介绍过,在此就不单独介绍了,直接从Python官网的内容用翻译软件翻译过来稍微修改. 操作二进制数据的核心内置类型是 ...
- PyQt(Python+Qt)学习随笔:在父窗口中弹出子窗口无法显现的问题
在学习和测试PyQt相关部件功能的时候,老猿经常是不同的窗口新建一个类,再新建一个Application来使用这个窗口类进行测试. 为了减少应用框架代码的重复开发,老猿决定采用主窗口叠加测试窗口的模式 ...
- pandas 移动列的方法
import pandas as pd df = pd.DataFrame(np.random.randn(3,4),columns=['a','b','c','d']) k = df.pop(&qu ...
- git学习——git命令之创建版本库和版本退回
原文来至 一.创建版本库 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追 ...
- memcached session会话共享
1 安装依赖包yum install libevent livevent-devel nc -y 2 yum 安装memcachedyum install -y memcached 3 启动memec ...
- 四、LoadRunner11安装和破解
之前安装了LoadRunner12 社区版的,应为满足不了工作需求, 上网仔细查了教程下来LoadRunner11破解版 链接:https://pan.baidu.com/s/1dM8Lwf4p160 ...
- Unity 保存游戏,读取游戏,退出游戏
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using System. ...
- qs的工具方法讲解
简单来说,qs 是一个增加了一些安全性的查询字符串解析和序列化字符串的库. 今天在学习同事的代码, 在学习过程中遇到了这样一句代码 研究了很久,只了解了个大概,后面慢慢的用熟练只会,想着做个总结,温习 ...