创建验证码类:
Ext.define('checkCode',{
extend:'Ext.form.field.Text',
alias:'widget.checkCode',//定义类的名字
inputTyle:'codefield',
isLoader:true,
codeUrl:Ext.BLANK_IMAGE_URL,
onRender:function(ct,position)
{
this.callParent(arguments);
this.codeEl=ct.createChild({tag:'img',src:Ext.BLANK_IMAGE_URL});
this.codeEl.addCls('x-form-code');
this.codeEl.on('click',this.loadCodeImg,this);
if(this.isLoader)this.loadCodeImg();
},
alignErrorIcon:function()
{
this.errorIcon.alignTo(this.codeEl,'tl-tr',[2,0]);
},
loadCodeImg:function()
{
this.codeEl.set({ src: this.codeUrl + '?id=' + Math.random() });
}
//使用createChild方法,创建了一个图片,并为其添加了一个名为x-form-code,
//而后,给其创建了一个click事件,这个事件实现的功能是,当我们点击验证码图片时,换另外一张图片,
//最后,如果isLoader为True时,调用loadCodeImg方法
});
需要在后台生成验证码图片
package entity;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Random;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class checkcode {
public static String strCode = null;
public static final char[] CHARS = {'2','3','4','5','6','7','8','9','A','B','C','D','E','F',