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的更多相关文章
随机推荐
- Spring Cloud 学习 (一) Eureka
微服务的功能主要有以下几个方面: 服务的注册和发现 服务的负载均衡 服务的容错 服务网关 服务配置的统一管理 链路追踪 实时日志 服务注册是指向服务注册中心注册一个服务实例,服务提供者将自己的服务信息 ...
- PyQt(Python+Qt)学习随笔:QMainWindow的tabifyDockWidget方法将QDockWidget两个停靠窗选项卡式排列
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 主窗口的tabifyDockWidget方法用于将主窗口的两个停靠窗口 ...
- PyQt(Python+Qt)学习随笔:QScrollArea为什么不起作用未出现滚动条?
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 老猿在进行Scroll Area部件测试时,在下面的窗体中放置了一个Scroll Area部件,在部 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的是否接受鼠标拖放事件的acceptDrops属性及含义
acceptDrops属性表示当前部件是否接受鼠标拖放事件,鼠标拖放应该是与鼠标拖拽结合在一起的,在Qt Designer中可以通过属性acceptDrops设置部件是否接受鼠标拖放事件.如果部件接受 ...
- python——sklearn完整例子整理示范(有监督,逻辑回归范例)(原创)
sklearn使用方法,包括从制作数据集,拆分数据集,调用模型,保存加载模型,分析结果,可视化结果 1 import pandas as pd 2 import numpy as np 3 from ...
- Day2 Scrum 冲刺博客
线上会议: 昨天已完成的工作与今天计划完成的工作及工作中遇到的困难: 成员姓名 昨天完成工作 今天计划完成的工作 工作中遇到的困难 纪昂学 总结会议内容,思考自己所分配到的任务 创建一个Cell类,用 ...
- CF1439C Greedy Shopping
题解 尝试做一下,感觉是每次取一段前缀和,这样就相当于让我们证明在 \(a_i\le 10^{12}\) 时,不可能构造出隔一个取一个的情况(\(n=10^5\)). a[i]: 1, 2, 3, 5 ...
- 笔记-[AH2017/HNOI2017]礼物
笔记-[AH2017/HNOI2017]礼物 [AH2017/HNOI2017]礼物 \[\begin{split} ans_i=&\sum_{j=1}^n(a_j-b_j+i)^2\\ =& ...
- Linux文件权限问题
更改权限命令 chmod 常用参数 -R, --recursive change files and directories recursively (以递归的方式对目前目录下的所有档案与子目录进 ...
- 使用Binlog日志恢复误删的MySQL数据
解到: MySQL的binlog日志是什么?通常是用来干什么的? 模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据. 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当 ...