**********************************

验证码 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 }

最新文章

  1. About_Return
  2. Eclipse自动补全功能管理
  3. 【POJ 3525】Most Distant Point from the Sea(直线平移、半平面交)
  4. centos7 中libgdiplus的安装
  5. hdu---(5038)Grade(胡搞)
  6. iOS之push present 动画
  7. POJ1118 Lining Up
  8. Centos7网络配置+图形界面设置
  9. VB6.0 String 用法总结
  10. Umbraco学习2------数据类型
  11. 「LINUX资料」简单实用命令less和vi(三)
  12. ABP .Net Core API和Angular前端APP独立部署跨域问题(No Access-Control-Allow-Origin)
  13. SpringMVC的各种注解
  14. 手工检测SQL注入漏洞
  15. ASP:连接Access数据库的方法及使用感受
  16. 迭代器_iter_,生成器yeild,三元运算,列表解析(十三)
  17. VHDL 数字时钟设计
  18. HBase高性能复杂条件查询引擎
  19. .Net Core2.0中使用ADO.NET
  20. Linux 增加系统调用 (转)

热门文章

  1. JJWT 使用示例
  2. Linux之【安装系统后的调优和安全设置】
  3. 一条 SQL 语句在 MySQL 中如何执行的
  4. linux下安装Zookeeper 3.4.14
  5. STL——容器(deque) deque 的赋值 assign() operator=() swap()
  6. 初入Nginx--配置篇
  7. ES6新增api随记
  8. 持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData
  9. Spring @Scheduled Annotation
  10. 2020软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!