本文实例讲述了java swing中jdialog实现用户登陆ui。分享给大家供大家参考,具体如下:
jdialog是一种对话框组件,它常常与joptionpane配合使用。joptionpane提供对话框内部的消息、按钮等内容,jdialog提供对话框窗体,提供模态/非模态等属性。jdialog与jframe在外观上的区别在于,它没有最大化/最小化按钮。如下图所示:
jdialog窗体
点击file-》connect之后弹出登陆窗口:
jframe窗体
在下面的demo中,演示了jdialog构造登录窗体,以及从窗体中获得数据的方法。
logindemostart.java
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
|
package awtdemo; import java.awt.borderlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.*; /* * @功能:使用jdialog构造登陆对话框,并获取登陆用户信息 * @版本:20150804 * @结构:logindemostart[主类,提供初始ui],passwordchooser[提供登陆ui并获取用户信息],user[保存用户信息] */ @suppresswarnings("serial") class logindemostart extends jframe{ /* * @功能:提供初始ui,并调用passwordchooser登陆界面 * @版本:20150804 */ private jtextarea textarea; private passwordchooser passwordchooser ; public logindemostart(){ //构造菜单栏 jmenubar mbar = new jmenubar(); setjmenubar(mbar); jmenu filemenu = new jmenu( "file" ); jmenuitem connectitem = new jmenuitem( "connect" ); connectitem.addactionlistener( new actionlistener(){ public void actionperformed(actionevent e) { // todo auto-generated method stub //if 1st time,construct a dialog passwordchooser = new passwordchooser(logindemostart. this ); passwordchooser.setvisible( true ); if (passwordchooser.islogedin()) { user u = passwordchooser.getuser(); textarea.append( "username = " + u.getname() + ", password = " + new string(u.getpassword()) + "\n" ); } } }); jmenuitem exititem = new jmenuitem( "exit" ); exititem.addactionlistener( new actionlistener() { @override public void actionperformed(actionevent e) { // todo auto-generated method stub system.exit( 0 ); } }); mbar.add(filemenu); filemenu.add(connectitem); filemenu.add(exititem); //添加文本区域 textarea = new jtextarea(); add( new jscrollpane(textarea), borderlayout.center); //设置窗体属性 settitle( "logindemostart - www.zzvips.com" ); setsize( 300 , 200 ); setlocationrelativeto( null ); } public static void main(string[] args) { // todo auto-generated method stub logindemostart logindemostart = new logindemostart(); logindemostart.setvisible( true ); } } |
passwordchooser.java
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
|
package awtdemo; import java.awt.*; import java.awt.event.*; import javax.swing.*; /* * @功能:提供登陆ui并获取用户信息 * @版本:20150804 */ @suppresswarnings ( "serial" ) class passwordchooser extends jdialog{ private jtextfield username ; private jpasswordfield password ; private jbutton okbutton ; private jbutton cancelbutton ; private boolean islogedin = false ; public passwordchooser(frame parent){ super (parent, true ); //本ui包含2个panel jpanel inputpanel = new jpanel(); jpanel buttonpanel = new jpanel(); //构造inputpanel inputpanel.setlayout( new gridlayout( 2 , 2 )); inputpanel.add( new jlabel( "useername:" )); username = new jtextfield(); username.setcolumns( 10 ); password = new jpasswordfield(); password.setcolumns( 10 ); inputpanel.add(username); inputpanel.add( new jlabel( "password:" )); inputpanel.add(password); inputpanel.setborder(borderfactory.createemptyborder( 10 , 5 , 10 , 5 )); //构造buttonpanel okbutton = new jbutton( "ok" ); okbutton.addactionlistener( new actionlistener() { @override public void actionperformed(actionevent e) { // todo auto-generated method stub islogedin = true ; setvisible( false ); } }); cancelbutton = new jbutton( "cancel" ); cancelbutton.addactionlistener( new actionlistener() { @override public void actionperformed(actionevent e) { // todo auto-generated method stub setvisible( false ); } }); buttonpanel.add(okbutton); buttonpanel.add(cancelbutton); buttonpanel.setborder(borderfactory.createemptyborder( 10 , 5 , 10 , 5 )); //构造主框架 setlayout( new borderlayout()); getcontentpane().add(inputpanel, borderlayout.north); getcontentpane().add(buttonpanel, borderlayout.south); //设置窗体属性 settitle( "passwordchooser - www.zzvips.com" ); setlocationrelativeto(inputpanel); //setpreferredsize(new dimension(300, 200)); pack(); //system.out.println(getpreferredsize()); } public void setuser(user u){ username.settext(u.getname()); } public user getuser(){ return new user(username.gettext(), password.getpassword()); } public boolean islogedin(){ return islogedin; } public static void main(string[] args) { // todo auto-generated method stub } } |
user.java
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
|
package awtdemo; /* * @功能:保存用户信息 * @版本:20150804 */ class user{ private string name; private char [] password; public user(string aname, char [] apassword){ name = aname; password = apassword; } public string getname(){ return name; } public char [] getpassword(){ return password; } public void setname(string aname){ name = aname; } public void setpassword( char [] apassword){ password = apassword; } } |
希望本文所述对大家java程序设计有所帮助。
原文链接:http://www.cnblogs.com/pzy4447/p/4701753.html