一、想要實現的登入介面效果
二、主介面的設定
1、新增三個標籤(jlabel):使用者名稱:、密碼:、驗證碼:。
2、新增兩個單行文字輸入框(jtextfield)和乙個密碼文字輸入框(jpasswordfield)
3、新增三個按鈕:換一張、登入、重置
4、新增驗證碼:單獨建立乙個面板類
5、新增按鈕***(這裡不一一贅述)
三、驗證碼的面板類
1、實現背景
先例項化緩衝物件(bufferedimage),再獲取其畫布物件(gs),再在獲取的畫布物件(gs)上繪製背景(image)。然後再在本面板的畫布物件中,繪製緩衝物件。
public void paint(graphics g) catch (ioexception e)
image.getgraphics().drawimage(img, 0, 0, width, height, null);// 在緩衝影象物件上繪製影象
g.drawimage(image, 0, 0, null);// 在面板中畫出驗證碼
}
2、實現隨機干擾線
int startx1 = random.nextint(20);// 隨機獲取第一條干擾線起點的x座標
int starty1 = random.nextint(20);// 隨機獲取第一條干擾線起點的y座標
int startx2 = random.nextint(30)+35;// 隨機獲取第一條干擾線終點的x座標,也是第二條干擾線起點的x座標
int starty2 = random.nextint(10)+20;// 隨機獲取第一條干擾線終點的y座標,也是第二條干擾線起點的y座標
int startx3 = random.nextint(30)+90;// 隨機獲取第二條干擾線終點的x座標
int starty3 = random.nextint(10)+5;// 隨機獲取第二條干擾線終點的y座標
gs.setcolor(color.red);
gs.drawline(startx1, starty1, startx2, starty2);// 繪製第一條干擾線
gs.setcolor(color.blue);
gs.drawline(startx2, starty2, startx3, starty3);// 繪製第二條干擾線
3、實現隨機取得字母
首先例項化隨機物件(random),並可以通過整型到字元型的強制轉換實現。
random random = new random();// 例項化random
char ctmp = (char) (random.nextint(26) + 65); // 生成a~z的字母
4、實現字母的隨機顏色,旋轉和縮放
這裡需要用到affinetransform類。
affinetransform
類表示 2d 仿射變換,它執行從 2d 座標到其他 2d 座標的線性對映,保留了線的「直線性」和「平行性」。可以使用一系列平移 (translation)、縮放 (scale)、翻轉 (flip)、旋轉 (rotation) 和錯切 (shear) 來構造仿射變換。
// 輸出隨機的驗證文字
for (int i = 0; i < 4; i++)
PHP實現驗證碼登入
1.登入頁面 2.驗證碼生成程式code.php 載入驗證碼類 require captcha.class.php 例項化物件 captcha new captcha 生成驗證碼 captcha generate 70,22,5,4 3.驗證碼生成類captcha.class.php class c...
Springboot實現驗證碼登入
本人近期正在完成畢業設計 旅遊資訊管理系統 的製作,採用的springboot thymeleaf的模式。在登入 時想要新增驗證碼驗證,通過網上查詢資料,決定整合kaptcha來實現驗證碼登入 com.github.penggle kaptcha 2.3.2 cljs ajax cljs ajax ...
php php驗證碼的簡單實現
php實現驗證碼比較簡單,下面介紹不是驗證碼的具體實現方法,而是拋磚引玉的說明。下面是怎麼才能在php中生成一張自定義的。首先必須在頁面的body裡加上乙個img標籤 下面為drawimg.php header content type image png authnum 1234 width 62...