一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java圖形化界面實現登錄窗口

java圖形化界面實現登錄窗口

2021-04-29 10:52鯨魚姑娘 Java教程

這篇文章主要為大家詳細介紹了java圖形化界面實現登錄窗口,具有一定的參考價值,感興趣的小伙伴們可以參考一下

登錄窗口一般很常見,現在讓我們自己也來寫一個吧!

ps:很多import是重復的,是因為我是分了幾個類寫的,必須單獨導入

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
//模擬qq登錄窗口
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.*;
 
public class qqgui extends jframe implements actionlistener{
 private jlabel userla;
 private jlabel pwdla;
 private jlabel vercodela;//驗證碼
 private jtextfield usertxt;
 private jpasswordfield pwdtxt;
 private jtextfield vercodetxt;//驗證碼
 private jbutton surebt;
 private jbutton quitbt;
 private mypanel mp;
 
 //構造方法
 public qqgui()
 {
  init();
 }
 public void init()
 {
  frame frame = new frame("qq登錄");
 
  //創建出控件對象(因為上面只是聲明出來,并沒有給出實際的空間)
 
  //用戶文本
  userla = new jlabel();
  userla.settext("用戶名:");
  userla.setsize(60, 50);
  userla.setlocation(100, 80);
 
  //密碼文本
  pwdla = new jlabel();
  pwdla.settext("密碼:");
  pwdla.setsize(50, 50);
  pwdla.setlocation(100, 120);
 
  //用戶輸入框
  usertxt = new jtextfield();
  usertxt.setsize(100, 20);
  //this.setsize(width, height)
  usertxt.setlocation(170, 95);
 
  //密碼輸入框
  pwdtxt = new jpasswordfield();
  pwdtxt.setsize(100, 20);
  pwdtxt.setlocation(170, 135);
 
  //確認按鈕
  surebt = new jbutton("登錄");
  surebt.setsize(60, 25);
  surebt.setlocation(135, 260);
 
  //退出按鈕
  quitbt = new jbutton("退出");
  quitbt.setsize(60, 25);
  quitbt.setlocation(240, 260);
 
  //驗證碼文本
  vercodela = new jlabel();
  vercodela.settext("驗證碼:");
  vercodela.setsize(60, 50);
  vercodela.setlocation(100,165);
 
  //驗證碼文本框
  vercodetxt = new jtextfield();
  vercodetxt.setsize(100, 20);
  vercodetxt.setlocation(170, 180);
 
  //驗證碼
  mp = new mypanel();
  mp.setsize(100, 30);
  mp.setlocation(280, 175);
 
  //登錄方式選擇框
  jcombobox xlk=new jcombobox();
  xlk.setsize(60, 20);
  xlk.setlocation(250, 220);
  xlk.additem("在線");
  xlk.additem("隱身");
  xlk.additem("離開");
 
 
  this.setlayout(null);
  this.setsize(500, 400);
  this.add(userla);
  this.add(pwdla);
  this.add(usertxt);
  this.add(pwdtxt);
  this.add(surebt);
  this.add(quitbt);
  this.add(vercodela);
  this.add(vercodetxt);
  this.add(mp);
  this.add(xlk);
  surebt.addactionlistener(this);
  quitbt.addactionlistener(this);
  this.setvisible(true);
 }
 //具體事件的處理
  public void actionperformed(actionevent e)
  {
   //獲取產生事件的事件源強制轉換
   jbutton bt = (jbutton)e.getsource();
   //獲取按鈕上顯示的文本
   string str = bt.gettext();
   if(str.equals("登錄"))
   {
    if(!checkisnull())
    {
     //獲取用戶所輸入的用戶名
     string user = usertxt.gettext().trim();
     //獲取用戶所輸入的密碼
     string pwd = pwdtxt.gettext().trim();
     if(checkuserandpwd(user,pwd))
     {
 
      //隱藏當前登錄窗口
      this.setvisible(false);
      //驗證成功創建一個主窗口
      mainframe frame = new mainframe();
     }
     else
     {
      //如果錯誤則彈出一個顯示框
      joptionpane pane = new joptionpane("用戶或密碼錯誤");
      jdialog dialog = pane.createdialog(this,"警告");
      dialog.show();
     }
    }
   }
   else
   {
    //調用系統類中的一個正常退出
    system.exit(0);
   }
  }
  private boolean checkisnull()
  {
   boolean flag = false;
   if(usertxt.gettext().trim().equals(" "))
   {
    flag = true;
   }
   else
   {
    if(pwdtxt.gettext().trim().equals(" "))
    {
     flag = true;
    }
   }
   return flag;
  }
  private boolean checkuserandpwd(string user,string pwd)
  {
   boolean result = false;
   try
   {
    filereader file = new filereader("d:\\workspaces\\myeclipse 8.5\\testgui.txt");
    bufferedreader bre = new bufferedreader(file);
    string str = bre.readline();
 
   while(str!=null)
   {
     string[] strs = str.split(",");
     if(strs[0].equals(user))
     {
      if(strs[1].equals(pwd))
      result = true;
     }
     str = bre.readline();
   }
   file.close();
   }catch(exception ex)
   {
    system.out.print("");
   }
   return result;
  }
}
 
//mainframe類
import javax.swing.*;
public class mainframe extends jframe {
 public mainframe()
 {
  this.setsize(300, 300);
  this.setvisible(true);
 }
}
 
//驗證碼的生成
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.light_gray);
  //填充驗證碼背景
  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);
  }
  g.setfont(new font("黑體",font.bold,20));//設置驗證碼字體以及大小
  g.setcolor(color.red);//設置驗證碼字體顏色
  //生成隨機驗證碼
  char[] tmp = ("0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz").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);//寫入驗證碼
 }
}
 
//下拉框的實現
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class xialakuang extends jframe {
 private jcombobox combobox;//定義一個組合框
 public void xia ()
 {
 
  //jpanel panel = new jpanel();//創建一個jpanel面板
  combobox = new jcombobox();
  combobox.additem("在線");
  combobox.additem("隱身");
  combobox.additem("離開");
 
  this.add(combobox);
  //this.add(panel);
  this.setsize(200, 100);
  this.setdefaultcloseoperation(jframe.exit_on_close);
  this.setvisible(true);
 }
}
 
//測試
public class testqqgui {
 
 /**
  * @param args
  */
 public static void main(string[] args) {
  // todo auto-generated method stub
  qqgui frame = new qqgui();
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_36474990/article/details/78617649

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美成人福利视频 | 日本免费全黄一级裸片视频 | 国产色司机在线视频免费观看 | 热久久最新网址 | 被强迫变性翘秘书 | 2022最新国产在线 | 日日干天天爽 | 免费尤物视频 | 亚洲欧美乱 | 国产五月天在线 | free哆拍拍免费永久视频 | 国产肥老上视频 | 欧美日韩国产成人综合在线 | 国产成人亚洲精品91专区高清 | 国产高清在线看 | 车上小婕子系列辣文小说 | 成年女人毛片免费观看97 | 亚洲国产精品高清在线 | 国产专区一va亚洲v天堂 | 美式禁忌在线 | 亚洲成年 | 动漫jk美女被爆羞羞漫画 | 99在线精品免费视频 | 国产精品毛片无码 | 激情小说欧美图片 | 日本三不卡 | 日本黄色高清视频网站 | 日本人成在线视频免费播放 | 鄂州一家三口完整版免费 | 国产久草在线 | 91久久偷偷做嫩草影院免费 | 奇米777四色精品综合影院 | 亚洲 欧美 中文 日韩 视频 | 高清国产激情视频在线观看 | 女八把屁股扒开让男生添 | 国产资源中文字幕 | 欧美一区二区三区大片 | 韩国美女vip内部2020 | 国产精品久久国产精品99 | 国模丰满美女冰漪34d | 国产三级精品三级男人的天堂 |