Swing图形界面实现可动态刷新的验证码

本文实例为大家分享了Swing实现可动态刷新的验证码的具体代码,供大家参考,具体内容如下

不多,code代码如下:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.JFrame; 

public class CheckCode extends JFrame {
private static Random random = new Random();
private int width = 53;//验证码宽度
private int height =25;//验证码高度
private int font_size = 20;//验证码颜色
private int x = 100;//验证码所在窗体X坐标
private int y = 100;//验证码所在窗体Y坐标
private int jam = 5;//干扰元素 建议使用 4~7 之间的数字
private String code = "";//保存验证码 

public CheckCode(){//初始化窗体信息
super("验证码");
setVisible(true);
setBounds((Toolkit.getDefaultToolkit().getScreenSize().width-300)/2, (Toolkit.getDefaultToolkit().getScreenSize().height-300)/2, 300, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
repaint();
}
});
} 

public Color getRandomColor(){//获得随机颜色
int R=random.nextInt(255),G=random.nextInt(255),B=random.nextInt(255);
return new Color(R,G,B);
} 

public String getRandomString(){//获得验证码
int num = random.nextInt(9);
code = num+"";
return num+"";
} 

public void checkCode(Graphics g){// 绘画验证码
drawBorder(g);
drawCode(g);
drawJam(g);
} 

public void drawBorder(Graphics g){//绘画边框和背景
Color gc = g.getColor();
g.setColor(Color.WHITE);
g.fillRect(x, y, width, height);
g.setColor(Color.BLACK);
g.drawRect(x, y, width, height);
g.setColor(gc);
} 

public void drawCode(Graphics g){//绘画验证码内容
Color gc = g.getColor();
for(int i=0;i<4;i++){
g.setColor(getRandomColor());
g.setFont(new Font("宋体",Font.BOLD,font_size));
g.drawString(getRandomString(), x+5+(i*12), y+font_size);
}
g.setColor(gc);
} 

public void drawJam(Graphics g){//绘画干扰元素
Color gc = g.getColor();
for(int i=0;i<jam;i++){
g.setColor(getRandomColor());
g.drawLine(x+random.nextInt(width), y+random.nextInt(height), x+random.nextInt(width), y+random.nextInt(height));
}
g.setColor(gc);
} 

public void paint(Graphics g) {
Color c = g.getColor();
g.drawString("单击可刷新验证码", 30, 50);
checkCode(g);
g.setColor(c);
} 

public static void main(String[] args) {
new CheckCode();
}
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java Swing实现选项卡功能(JTabbedPane)实例代码

     Swing实现选项卡功能(JTabbedPane) 先创建JTabbedPane对象,构造函数可使用JTabbedPane(int tabPlacement).tabPlacement是JTabbedPane从接口 javax.swing.SwingConstants 继承的字段.可以是BUTTOM,TOP等.如下代码所示: JFrame jframe = new JFrame("TEST"); <a href="http://lib.csdn.net/base/do

  • Swing常用组件之单选按钮和复选框

    本文为大家分享了Swing单选按钮和复选框的使用方法,供大家参考,具体内容如下 JRadioButton构造函数: JRadioButton():建立一个新的JRadioButton. JRadioButton(Icon icon):建立一个有图像但没有文字的JRadioButton. JRadioButton(Icon icon,boolean selected):建立一个有图像但没有文字的JRadioButton,且设置其初始状态(有无被选取). JRadioButton(String te

  • Java swing仿酷狗音乐播放器

    今天给大家介绍下用Java swing开发一款音乐播放器,高仿酷狗音乐播放器,完整源码地址在最下方,本文只列出部分源码,因为源码很多,全部贴不下,下面还是老规矩.来看看运行结果: 下面我们来看看代码: 首先看一下主窗口的实现代码: package com.baiting; import java.awt.Dimension; import java.awt.Toolkit; import com.baiting.menu.CloseWindow; /** * 窗口 * @author lmq *

  • java Swing布局管理之BoxLayout布局

    本文为大家解析java Swing布局管理中的BoxLayout布局,供大家参考,具体内容如下 BoxLayout:可以指定在容器中是否对控件进行水平或者垂直放置,比 FlowLayout 要更为灵活 BoxLayout与其他布局管理器稍有不同,必须向其构造函数中传递容器实例的引用,由该容器使用BoxLayout.另外必须指定BoxLayout中组件的布局方式:垂直排列(按列)或水平排列(按行).用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLayout,但没那么复杂. 1

  • java之swing表格实现方法

    本文实例讲述了java之swing表格实现方法.分享给大家供大家参考.具体如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; public class test extends JApplet{ public void init(){ Container contentPane = getContentPane(); contentPane.setLayo

  • Jtable和JTree的写法示例代码

    我们首先看看Jtable和JTree的基本概念和常用构造方法. 一:表格(JTable): 1.基本概念: 表格(JTable)是Swing新增加的组件,主要是为了将数据以表格的形式显示.给显示大块数据提供了简单的机制. 2.常用构造方法: * JTable():使用系统默认的模型创建一个JTable 实例. * JTable(int numRows,int numColumns):创建一个使用DefaultTableModel 指定行.列的空表格. * JTable(Object[ ][ ]

  • Swing图形界面实现可动态刷新的验证码

    本文实例为大家分享了Swing实现可动态刷新的验证码的具体代码,供大家参考,具体内容如下 不多,code代码如下: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Random; i

  • Java图形界面Swing原理及用法解析

    这篇文章主要介绍了Java图形界面Swing原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JButton组件 布局管理器 FlowLayout 流式布局 BorderLayout 方位布局 GridLayout 表格布局 绝对布局 JLable 组件 文本框组件 JPanel轻量级容器 创建事件监听类 (更换监听类实现监听) 窗口监听适配器 都可使用匿名类实现监听 每个监听方法都可以返回一个Event对象来返回监听值 以上就是本

  • 利用aardio给python编写图形界面

    前阵子在用python写一些小程序,写完后就开始思考怎么给python程序配一个图形界面,毕竟控制台实在太丑陋了. 于是百度了下python的图形界面库,眼花缭乱的一整页,拣了几件有"特色"有"噱头"的下载下来做了个demo,仍旧不是很满意,不是下载安装繁琐,就是界面丑陋或者难写难用,文档不齐全. 后来那天,整理电脑文件发现了6年前下载的aatuo(现已更名aardio),顿时一阵惊喜. 先说说aardio,2011年7月的时候,它还叫aauto,那时的自己还醉心于

  • java图形界面AWT编写计算器

    一.前言 1)这个计算器是基于java语言下图形界面AWT编写的.其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,而是在于对AWT中三大布局的及画板的使用简单控件的操作使用.通过联系熟悉掌握AWT基础为深入学习打下基础.这个计算器功能也十分简单,空有其表.不过有兴趣的话可以继续添加功能完善操作等. 2)使用平台:主要使用Myeclipse2014 3)主要知识点:java 基础; awt+swing 二.功能实现及代码展示 1)主要是layout布局的练习,对画板文本框的使用,

  • java实现简易版图形界面计算器

    经过一个月的Java学习,听说Java中的第一个小型程序好多都做的是计算器,今天我也来做做吧,把这一个月学习的知识简单的综合一下,熟练近期学习的知识点. 我做的计算器如下图: 功能:对实数进行加.减.乘.除.余操作. 界面设置:首先设置一个窗体,一个菜单条,三个菜单项(无功能),三个标签(作为显示数据的地方,第一个标签作为提示作用,第二个标签作为输入数据作用,第三个标签显示结果作用),20个按钮(循环进行添加),两个面板(把三个标签添加到第一个面板里,把20个按钮添加到第二个面板里,用网格布局,

  • Java实现图形界面计算器

    本文实例为大家分享了Java实现图形界面计算器的具体代码,供大家参考,具体内容如下   代码: import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Stack; public class Calculator extends JFrame implements ActionListener

  • java图形界面之加法计算器

    JAVA用于开发图形界面应用的 SWING 组件包功能强大,使用方便.接下来我们就使用其写一个简单的图形界面小程序:加法计算器. 第一步: 首先得构思,我们要做什么.加法计算器的话,做出来之后大概是这个样子的. 如上图所示,这个程序的界面在我们脑海中已经成型了:程序顶部有一个标题,这里用来交代我们程序的名字:功能上用户可以在方框 1 和方框 2 中放入想要进行相加的数值,然后我们点击下方的 “计算” 按钮,结果就会显示在方框 3 中. 第二步: 分析界面,我们该怎么做.从上图可以看出,界面中包含

  • Java实现简单图形界面计算器

    前言 因为这两天我们的Java实验课程需要做两个小的图形化界面,其中就有一个图形界面的计算器,所以稍微花了点时间做了一个,同时复习了一下Java的基础内容和GUI编程.因为代码中的注释特别详细,所以这里就不讲解怎么实现的了. 代码 package zuoye; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; impor

  • Java有趣好玩的图形界面开发八个案例实现

    目录 1.复选框和单选框按钮组 2.文本编辑组件和滚动窗格 3.多个选项卡设置 4.在框架窗口中加入面板 5.在窗口中加入标签 6.框架中加入指定大小的标签 7.在框架窗口中加入按钮 8.框架窗口的创建 总结 虽然GUI技术没有很大的市场,甚至很多初学者放弃学习GUI,但是学习GUI编程的过程对于提高编程兴趣,深入理解Java编程有很大的作用.效果图如下,加油吧!! 1.复选框和单选框按钮组 —在框架窗口中加入复选框和单选框按钮组 import javax.swing.*; public cla

  • Java GUI图形界面开发实现小型计算器流程详解

    目录 一.设计目标 二.界面设计 三.功能实现 四.全部代码 五.功能测试 六.小结 一.设计目标 (1)主要功能:实现简单的加.减.乘.除等双目运算,和开平方.百分数等单目运算 (2)辅助功能:按钮“C”实现清空文本框:按钮“←”实现退格,删除文本框中最右边的一个字符 二.界面设计 创建“面板对象”,并设置其布局管理方式为5行4列的GridLayout布局方式,以用于容纳20个按钮.文本框和容纳20个按钮组件的面板则使用边界布局方式分别将其布局到窗体BorderLayout.NORTH和中央位

随机推荐