java小应用程序实现中文验证码功能

上传人:第*** 文档编号:34212544 上传时间:2018-02-22 格式:DOC 页数:6 大小:92.50KB
返回 下载 相关 举报
java小应用程序实现中文验证码功能_第1页
第1页 / 共6页
java小应用程序实现中文验证码功能_第2页
第2页 / 共6页
java小应用程序实现中文验证码功能_第3页
第3页 / 共6页
java小应用程序实现中文验证码功能_第4页
第4页 / 共6页
java小应用程序实现中文验证码功能_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《java小应用程序实现中文验证码功能》由会员分享,可在线阅读,更多相关《java小应用程序实现中文验证码功能(6页珍藏版)》请在金锄头文库上搜索。

1、用 java Application 应用程序完成中文验证码:(本程序仅供参考,版本所有权归东方学院林华所有)1.创建验证码生成类 makeCertPic:import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.util.Random;public class makeCertPic BufferedImage image2=null;/用于暂时存储生成的图片private char mapTable=我,国,色 ,动,

2、 人 ,的,天 ,城, 日 ,阳,明,华,薇 ,事, 半 ,功,好,德 ,地, 灵 ,电,脑,卓 ,子, 曰 ,一,见,钟 ,情, 请;/* 功能:生成彩色验证码图片* 参数 width为生成图片的宽度,参数 height为生成图片的高度*/public String getCertPic(int width, int height)if(width=0)width=60;if(height=0)height=20;BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); / 获取图形

3、上下文 Graphics g = image.getGraphics(); / 设定背景色 g.setColor(Color.white); g.fillRect(0, 0, width, height); /画边框 g.setColor(Color.black); g.drawRect(0,0,width-1,height-1); / 取随机产生的认证码String strEnsure = ;/ 4 代表 4 位验证码,如果要生成更多位的认证码,则加大数值for(int i=0; i4; +i) strEnsure+=mapTable(int)(mapTable.length*Math.ra

4、ndom();/Math.random()产生的值在 0.0 到 1.0 之间 / 将认证码显示到图像中,如果要生成更多位的认证码,增加drawString语句g.setColor(Color.red); g.setFont(new Font(宋体,Font.PLAIN,18); String str = strEnsure.substring(0,1); g.drawString(str,8,17); str = strEnsure.substring(1,2); g.drawString(str,20,15); str = strEnsure.substring(2,3); g.drawS

5、tring(str,35,18); str = strEnsure.substring(3,4); g.drawString(str,45,15); image2=image;/暂存图片return strEnsure;/返回字符串验证码/图片提供方法public BufferedImage getImage()return image2;2.创建应用小窗口类 ZHCheck:import java.awt.Color;import java.awt.EventQueue;import java.awt.datatransfer.StringSelection;import java.awt.

6、event.ActionEvent;import java.awt.event.ActionListener;import java.awt.image.BufferedImage;import java.util.Arrays;import javax.swing.BorderFactory;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.J

7、OptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.border.Border;import javax.swing.border.EtchedBorder;import javax.swing.border.TitledBorder;import org.omg.CORBA.PRIVATE_MEMBER;import org.omg.CORBA.PUBLIC_MEMBER;public class ZHCh

8、eck extends JFrameprivate JTextField textIC;/输入的验证码private JLabel tu;/验证码图片显示makeCertPic pic=new makeCertPic();/画图类String ic=;/验证码字符串暂存public ZHCheck()/创建窗口方法this.init();public void init() /窗口方法this.setTitle(图片验证码 );this.setBounds(100, 100, 340, 400);this.creatUI();this.setVisible(true);this.setDefa

9、ultCloseOperation(EXIT_ON_CLOSE);public void creatUI() /功能实现的具体方法final JPanel panel = new JPanel();Border border=BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);TitledBorder tBorder=BorderFactory.createTitledBorder(border);panel.setBorder(tBorder);panel.setLayout(null);this.add(panel);/* 创建用户

10、名输入框* */JLabel nameLbl=new JLabel(用户名:);nameLbl.setBounds(10,50,60,25);panel.add(nameLbl);final JTextField nameTxt=new JTextField();nameTxt.setBounds(80, 50, 200, 22);panel.add(nameTxt);/* 创建密码框* */JLabel pwdLbl=new JLabel(密 码 : );pwdLbl.setBounds(10,80,60,25);panel.add(pwdLbl);final JPasswordField

11、pwd=new JPasswordField();pwd.setBounds(80, 80, 200, 22);panel.add(pwd);/* 创建验证码框* */JLabel cLbl=new JLabel(验证码: );cLbl.setBounds(10,110,60,25);panel.add(cLbl);textIC=new JTextField();textIC.setBounds(80, 110, 50, 22);panel.add(textIC);/* 显示一张验证码* */ic=pic.getCertPic(75, 22);BufferedImage image=pic.g

12、etImage();Icon icon=new ImageIcon(image);tu = new JLabel(icon);tu.setBackground(Color.LIGHT_GRAY);tu.setBounds(135, 110, 75, 22);panel.add(tu);/* 实现“换一张”功能* */JButton next = new JButton(换一张);next.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) ic=pic.getCertPic(75,

13、22);BufferedImage image=pic.getImage();Icon icon=new ImageIcon(image);tu.setIcon(icon);/void);next.setBounds(215,110,75,22);panel.add(next);/* 提交以及检验用户名,密码,验证码功能,用 户名默认 123456,密码默认 123,先检验验证码,然后检验用户名密码*/JButton btn = new JButton(提交 );btn.setBounds(50, 200, 70, 22);btn.addActionListener(new ActionLis

14、tener() public void actionPerformed(ActionEvent arg0) String s1=nameTxt.getText();char s2=pwd.getPassword();char pw=1,2,3;char ps=;String s=textIC.getText().toString();s=s.toLowerCase();if(s1.equals()JOptionPane.showMessageDialog(panel,/it is a JAVA internal STD message BOX请输入用户名!,Warning,JOptionPan

15、e.WARNING_MESSAGE);else if(Arrays.equals(s2,ps)JOptionPane.showMessageDialog(panel,/it is a JAVA internal STD message BOX请输入密码!,Warning,JOptionPane.WARNING_MESSAGE);else if(s.equals()JOptionPane.showMessageDialog(panel,/it is a JAVA internal STD message BOX请输入验证码!,Warning,JOptionPane.WARNING_MESSAGE);else if(ic.equals(s)if (s1.equals(123456) & Arrays.equals(s2,pw) JOptionPane.showMessageDialog(panel,登录成功 !,Message,JOptionPane.INFORMATION_MESSAGE);System.exit(0);else JOptionPane.showMessageDialog(panel,/it is a JAVA internal STD message BOX您的用户名

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号