JavaDailyReports10_11
2024-09-03 03:09:12
**********************************
验证码 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 }
最新文章
- About_Return
- Eclipse自动补全功能管理
- 【POJ 3525】Most Distant Point from the Sea(直线平移、半平面交)
- centos7 中libgdiplus的安装
- hdu---(5038)Grade(胡搞)
- iOS之push present 动画
- POJ1118 Lining Up
- Centos7网络配置+图形界面设置
- VB6.0 String 用法总结
- Umbraco学习2------数据类型
- 「LINUX资料」简单实用命令less和vi(三)
- ABP .Net Core API和Angular前端APP独立部署跨域问题(No Access-Control-Allow-Origin)
- SpringMVC的各种注解
- 手工检测SQL注入漏洞
- ASP:连接Access数据库的方法及使用感受
- 迭代器_iter_,生成器yeild,三元运算,列表解析(十三)
- VHDL 数字时钟设计
- HBase高性能复杂条件查询引擎
- .Net Core2.0中使用ADO.NET
- Linux 增加系统调用 (转)
热门文章
- JJWT 使用示例
- Linux之【安装系统后的调优和安全设置】
- 一条 SQL 语句在 MySQL 中如何执行的
- linux下安装Zookeeper 3.4.14
- STL——容器(deque) deque 的赋值 assign() operator=() swap()
- 初入Nginx--配置篇
- ES6新增api随记
- 持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData
- Spring @Scheduled Annotation
- 2020软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!