package javashiyan;

 import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.*; public class Yanzhen extends JFrame
{
//定义成员变量
private Mypanel mp;
private JButton b;
private JTextField txt;
private ActionListener listener; public Yanzhen()
{
Realize();
}
public void Realize()
{
JFrame f=new JFrame("验证码");
//实例化
b=new JButton();
b.addActionListener(listener);
ActionEvent e;
b.setIcon(new ImageIcon("D://button//刷新.jpg"));//载入图片
b.setLocation(200,100);//设置位置
b.setSize(32,32);//设置大小
b.setVisible(true);//设置显示 txt=new JTextField();
txt.setSize(90,30);
txt.setLocation(10,100);
txt.setVisible(true); mp=new Mypanel();
mp.setSize(100,30);
mp.setLocation(100,100); JButton jb=new JButton(); f.add(mp);
f.add(b);
f.add(txt); f.setLayout(null);
f.setSize(400, 400);//设置界面大小
f.getContentPane().setBackground(Color.white);//设置界面的背景颜色
f.getContentPane().setVisible(true);
f.setVisible(true);
} public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub }
}
 package javashiyan;

 import java.awt.*;
import java.util.*; public class Mypanel extends Panel {
public void paint(Graphics g)
{
int height = 50;
int width = 90;
//验证码框背景颜色
g.setColor(Color.white);
//填充验证码背景
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)-1;
int y = r.nextInt(height)-1;
g.drawOval(x, y, 2, 2);//画干扰的圆点
}
for(int i=0;i<3;i++)
{
int x1=r.nextInt(width)-1;
int y1=r.nextInt(height)-1;
int x2=r.nextInt(width)-1;
int y2=r.nextInt(height)-1;
g.drawLine(x1, y1, x2, y2);//画干扰的线段
} g.setFont(new Font("黑体",Font.BOLD,20));//设置验证码字体以及大小
g.setColor(Color.BLUE);//设置验证码字体颜色
//生成随机验证码
char[] tmp = ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
StringBuilder sb = new StringBuilder();
for(int i = 0;i<4;i++)
{
int pos = r.nextInt(tmp.length);
char c = tmp[pos];
sb.append(c + " ");
}
g.drawString(sb.toString(), 10, 15);//写入验证码
}
}
 package javashiyan;

 import java.util.Random;

 public class main {

     public static void main(String[] args)
{
Yanzhen dang=new Yanzhen();
} }

java第一次上机实验--验证码的更多相关文章

  1. Java第一次上机实验源代码

    小学生计算题: package 第一次上机实验_; import java.util.*; public class 小学计算题 { public static void main(String[] ...

  2. java第一次上机练习作业

    1.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序.(知识点:变量和 运算符综合应用) int a = 5, b = 10; int temp; temp = a; a = b; b = ...

  3. 20145221 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)

    20145221 <Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDEA) 实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调 ...

  4. 南京邮电大学java第一次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  5. Java第一次实验 20145104张家明

    Java第一次实验 实验报告 实验要求: 1.使用JDK编译.运行简单的Java程序 2.使用IDEA 编辑.编译.运行.调试Java程序 实验内容: 1.使用JDK编译.运行简单的Java程序: 2 ...

  6. 20155210 潘滢昊 Java第一次实验---凯撒密码

    Java第一次实验---凯撒密码 实验内容 实现凯撒密码,并进行测试. 实验代码 import java.io.*; import java.util.Scanner; public class ks ...

  7. 20145312《Java第一次实验报告》

    20145312<Java第一次实验报告> Java开发环境的熟悉(Windows+Idea) 一.实验内容 使用Idea编辑.编译.运行.调试Java程序. 使用JDK编译.运行简单的J ...

  8. java第一次实验总结&第三周总结

    Java第一次实验报告,java开发环境与简单的Java程序 一.实验目的 1.熟悉JDK开发环境 2.熟练掌握结构化程序设计方法 二.实验内容 打印输出所有的"水仙花数",所谓& ...

  9. JAVA第一次实验 ——实验楼

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1352  姓名:潘俊洋  学号:20135230 成绩:             指导教师:娄嘉鹏 ...

随机推荐

  1. CentOS7 firewall开启,开放端口操作

    防火墙开机启动 systemctl enable firewalld.service 查看防火墙状态 firewall-cmd --state 开启防火墙 systemctl start firewa ...

  2. datasnap isapi程序iis设置

    datasnap isapi程序iis设置 添加ISAPI和CGI限制: 处理程序映射---添加模块映射: IIS应用程序池要如下设置: 停止ISAPI部署服务

  3. C# 枚举类型 enum

    我个人感觉平日用到的enum应该是非常简单的,无非就是枚举和整数.字符串之间的转换.最近工作发现一些同事居然不太会用这个东东,于是就整理一下. 枚举类型是定义了一组“符号名称/值”配对.枚举类型是强类 ...

  4. 数据分析:基于Python的自定义文件格式转换系统

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  5. 关于Discuz! X系列UC_Server 本地文件包含漏洞

    最近又发现discuz论坛被挂马了,决定好好研究一下discuz的漏洞,技术债始终要还是要还的 一.问题发现 快要睡觉的时候,突然收到一封邮件,发现服务器上的文件被篡改了,立即登录服务器,清空恶意文件 ...

  6. ubuntu系统默认源更改为阿里源

    from:http://blog.csdn.net/minicto/article/details/62240020 ubuntu系统默认源更改为阿里源 ubuntu默认使用的国外的源,在更新的时候会 ...

  7. 深入理解JVM虚拟机:(一)Java运行时数据区域

    概述 JVM是Java语言的精髓所在,因为它Java语言实现了跨平台运行,以及自动内存管理机制等,本文将从概念上介绍JVM内存的各个区域,说明个区域的作用. JVM运行时数据区模型 Java虚拟机在执 ...

  8. Altium Designer重装后图标都变白板或都变一样的解决方法

    https://blog.csdn.net/qq_41995282/article/details/80372113

  9. SNF软件开发机器人-子系统-功能-数据录入方式

    数据录入方式 数据录入方式是指新增数据时是直接在列表上添加或者弹出表单增加数据. 1.效果展示: (1)列表 (2)表单弹出 2.使用说明: 打开显示页面,点击开发者选项的简单配置按钮.在功能表信息中 ...

  10. WCF-Oracel适配器针对UDT的使用配置与注意事项

    配置方法 1.针对Oracle UDT 的数据类型需要在开发过程中手动配置生成的DLL位置和Key位置,Visual Studio->添加生成项目->Add Adapter Metadat ...