使用Swing制作java验证码
2017-01-07 16:41
651 查看
package com.yw.test01; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Line2D; import java.awt.image.BufferedImage; import java.util.Random; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class PictureCheckCode { public PictureCheckCode() { super(); } public static void main(String[] args) { JFrame jf = new JFrame(); jf.setLayout(new FlowLayout()); PictureCheckCode pcc = new PictureCheckCode(); ImageIcon image=new ImageIcon(pcc.service()); JLabel label1 = new JLabel("<html><u>Label下划线</u><html>"); jf.add(label1); JLabel label2 = new JLabel(image); jf.add(label2); jf.setVisible(true); jf.setSize(300, 300); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } /* 该方法主要作用是获得随机生成的颜色 */ public Color getRandColor(int s, int e) { Random random = new Random(); if (s > 255) s = 255; if (e > 255) e = 255; int r, g, b; r = s + random.nextInt(e - s); // 随机生成RGB颜色中的r值 g = s + random.nextInt(e - s); // 随机生成RGB颜色中的g值 b = s + random.nextInt(e - s); // 随机生成RGB颜色中的b值 return new Color(r, g, b); } public BufferedImage service() { int width = 100, height = 50; // 指定生成验证码的宽度和高度 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // 创建BufferedImage对象,其作用相当于一图片 Graphics g = image.getGraphics(); // 创建Graphics对象,其作用相当于画笔 Graphics2D g2d = (Graphics2D) g; // 创建Grapchics2D对象 Random random = new Random(); Font mfont = new Font("test", Font.BOLD, 20); // 定义字体样式 g.setColor(getRandColor(200, 250)); g.fillRect(0, 0, width, height); // 绘制背景 g.setFont(mfont); // 设置字体 g.setColor(getRandColor(180, 200)); // 绘制20条颜色和位置全部为随机产生的线条,该线条为2f for (int i = 0; i < 20; i++) { int x = random.nextInt(width - 1); int y = random.nextInt(height - 1); int x1 = random.nextInt(6) + 1; int y1 = random.nextInt(12) + 1; Line2D line = new Line2D.Double(x, y, x + x1, y + y1); g2d.draw(line); // 绘制直线 } g.setColor(getRandColor(80, 200)); g2d.rotate(30*3.14/180, 30, 30); g2d.drawString("abcd", 20, 20); g.dispose(); // 释放g所占用的系统资源 return image; } }
相关文章推荐
- 使用javaHelp制作java swing帮助文档
- java在线聊天项目0.1版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包)
- 使用java制作简单验证码
- 使用Java制作图文验证码
- java在线聊天项目 使用SWT快速制作登录窗口,可视化窗口Design 更换窗口默认皮肤(切换Swing自带的几种皮肤如矩形带圆角)
- 使用javaHelp制作java swing帮助文档
- 使用Java制作图文验证码
- java在线聊天项目0.2版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包) BorderLayout布局与GridLayout布局不同之处 JPanel设置大小
- 【javaweb】使用java制作简单的验证码
- javaweb(四):使用Java代码制作验证码
- 使用javaHelp制作java swing帮助文档
- 使用Java程序实现随机验证码功能的实例
- JAVA界面组件---swing标签与按钮的使用与介绍
- 使用java完成一个简单的播放器的制作
- 小技巧:Java Swing中使用双击事件
- 验证码的制作和使用(ASP)
- 使用jsp生成验证码使用简单在java或jsp页面调用简单
- 验证码的制作和使用(ASP)
- 验证码的制作和使用(ASP)
- 使用Java制作多点发送程序