用java写简单的验证码生成小程序 新手学java

来源:互联网 发布:java各种排序算法 编辑:程序博客网 时间:2024/05/21 14:43

用java写简单的验证码生成小程序  新手学java






import java.awt.*;import java.awt.event.*;import java.util.Random;public class Main {public static void main(String[] args) {final Frame frame = new Frame("验证码"); // 创建Frame对象final Panel panel = new MyPanel();       // 创建Canvas对象frame.add(panel);frame.setSize(200, 100);// 将Frame窗口居中frame.setLocationRelativeTo(null);frame.setVisible(true);//窗口关闭事件frame.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){Window w=(Window)e.getComponent();w.dispose();}});}}class MyPanel extends Panel {public void paint(Graphics g) {int width = 160; // 定义验证码图片的宽度int height = 40; // 定义验证码图片的高度g.setColor(Color.LIGHT_GRAY);                // 设置上下文颜色g.fillRect(0, 0, width, height);            // 填充验证码背景g.setColor(Color.BLACK);                     // 设置上下文颜色g.drawRect(0, 0, width - 1, height - 1); // 绘制边框// 绘制干扰点Random r = new Random();for (int i = 0; i < 100; i++) {int x = r.nextInt(width) - 2;int y = r.nextInt(height) - 2;g.drawOval(x, y, 2, 2);}g.setFont(new Font("黑体", Font.BOLD, 30)); // 设置验证码字体g.setColor(Color.BLUE);                        // 设置验证码颜色// 产生随机验证码char[] chars = ("0123456789abcdefghijkmnopqrstuvwxyzABCDEFG"+ "HIJKLMNPQRSTUVWXYZ").toCharArray();StringBuilder sb = new StringBuilder();for (int i = 0; i < 4; i++) {int pos = r.nextInt(chars.length);char c = chars[pos];sb.append(c + " ");}g.drawString(sb.toString(), 20, 30); // 写入验证码}} 


0 0