Swing圖形界面實(shí)現(xiàn)可動(dòng)態(tài)刷新的驗(yàn)證碼
更新時(shí)間:2017年05月15日 15:06:30 作者:Joker_Ye
這篇文章主要為大家詳細(xì)介紹了Swing圖形界面實(shí)現(xiàn)可動(dòng)態(tài)刷新的驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了Swing實(shí)現(xiàn)可動(dòng)態(tài)刷新的驗(yàn)證碼的具體代碼,供大家參考,具體內(nèi)容如下
不多,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;//驗(yàn)證碼寬度 private int height =25;//驗(yàn)證碼高度 private int font_size = 20;//驗(yàn)證碼顏色 private int x = 100;//驗(yàn)證碼所在窗體X坐標(biāo) private int y = 100;//驗(yàn)證碼所在窗體Y坐標(biāo) private int jam = 5;//干擾元素 建議使用 4~7 之間的數(shù)字 private String code = "";//保存驗(yàn)證碼 public CheckCode(){//初始化窗體信息 super("驗(yàn)證碼"); 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(){//獲得隨機(jī)顏色 int R=random.nextInt(255),G=random.nextInt(255),B=random.nextInt(255); return new Color(R,G,B); } public String getRandomString(){//獲得驗(yàn)證碼 int num = random.nextInt(9); code = num+""; return num+""; } public void checkCode(Graphics g){// 繪畫驗(yàn)證碼 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){//繪畫驗(yàn)證碼內(nèi)容 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("單擊可刷新驗(yàn)證碼", 30, 50); checkCode(g); g.setColor(c); } public static void main(String[] args) { new CheckCode(); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實(shí)現(xiàn)接口校驗(yàn)簽名調(diào)用的項(xiàng)目實(shí)踐
在以SpringBoot開發(fā)后臺(tái)API接口時(shí),會(huì)存在哪些接口不安全的因素呢?通常如何去解決的呢?本文主要介紹了SpringBoot實(shí)現(xiàn)接口校驗(yàn)簽名調(diào)用的項(xiàng)目實(shí)踐,感興趣的可以了解一下2023-09-09Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹
這篇文章主要介紹了Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹,memento是一個(gè)保存另外一個(gè)對(duì)象內(nèi)部狀態(tài)拷貝的對(duì)象,這樣以后就可以將該對(duì)象恢復(fù)到原先保存的狀態(tài),需要的朋友可以參考下2015-03-03Spring?Boot詳解五種實(shí)現(xiàn)跨域的方式
跨域指的是瀏覽器不能執(zhí)?其他?站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對(duì)javascript施加的安全限制,這篇文章主要介紹了springboot實(shí)現(xiàn)跨域的5種方式,需要的朋友可以參考下2022-06-06Java中equals()方法重寫實(shí)現(xiàn)代碼
這篇文章主要介紹了Java中equals()方法重寫實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05詳解Spring3.x 升級(jí)至 Spring4.x的方法
本篇文章主要介紹了詳解Spring3.x 升級(jí)至 Spring4.x的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04