| 发表于:2008-01-10 22:51:43 楼主 |
我做了一个登录框的程序,可是有个问题感觉很奇怪!程序如下; import javax.swing.joptionpane; import javax.swing.jdialog; import javax.swing.jlabel; import javax.swing.jtextfield; import javax.swing.jpasswordfield; import javax.swing.jpanel; import javax.swing.jframe; import javax.swing.jbutton; import java.awt.dimension; import java.awt.borderlayout; import java.awt.flowlayout; import java.awt.toolkit; import java.awt.event.windowlistener; import java.awt.event.windowevent; import java.awt.event.windowadapter; import java.awt.event.actionlistener; import java.awt.event.actionevent; public class logintest extends jframe { private jpanel panel1 = new jpanel(); private jpanel panel2 = new jpanel(); private jpanel panel3 = new jpanel(); private jlabel lblname = new jlabel("姓名"); private jlabel lblpass = new jlabel("密码"); private jtextfield field1 = new jtextfield(10); private jpasswordfield field2 = new jpasswordfield(10); private jbutton btnlogin = new jbutton("登录"); private jbutton btnexit = new jbutton("退出"); public logintest(string title) { super(title); this.add(panel1,borderlayout.north); this.add(panel2,borderlayout.center); this.add(panel3,borderlayout.south); panel1.setlayout(new flowlayout(flowlayout.center,10,15)); panel2.setlayout(new flowlayout(flowlayout.center,10,9)); panel3.setlayout(new flowlayout(flowlayout.center,24,8)); panel1.add(lblname); panel1.add(field1); panel2.add(lblpass); panel2.add(field2); panel3.add(btnlogin); panel3.add(btnexit); addwindowlistener(new windowadapter() { public void windowclosing(windowevent event) { system.exit(0); } }); jdialog.setdefaultlookandfeeldecorated(true); btnlogin.addactionlistener(new actionlistener() { public void actionperformed(actionevent event) { if(field1.gettext().tostring().equals("") & field2.gettext().tostring().equals("")) { joptionpane.showconfirmdialog(logintest.this,"用户名和密码都不能为空","警告", joptionpane.yes_no_option,joptionpane_error_message); } else if(field1.gettext().tostring().equals("")) { joptionpane.showconfirmdialog(logintest.this,"用户名不能为空","警告", joptionpane.yes_no_option,joptionpane_error_message); } else if(field2.gettext().tostring().equals("")) { joptionpane.showconfirmdialog(logintest.this,"密码不能为空","警告", joptionpane.yes_no_option,joptionpane_error_message); } } }); this.setresizable(flase); setsize(400,300); dimension d = toolkit.getdefaulttoolkit().getscreensize(); this.setlocation((d.width-400)/2,(d.height-300)/2); setvisible(true); } public static void main(string[] args) { jframe.setdefaultlookandfeeldecorated(true); new logintest("登录"); } } 上面这段程序没有问题,就是想不通的是那个if...else语句.我如果把第二和第三个else语句全部写成if,如; btnlogin.addactionlistener(new actionlistener() { public void actionperformed(actionevent event) { if(field1.gettext().tostring().equals("") & field2.gettext().tostring().equals("")) { joptionpane.showconfirmdialog(logintest.this,"用户名和密码都不能为空","警告", joptionpane.yes_no_option,joptionpane_error_message); } if(field1.gettext().tostring().equals("")) { joptionpane.showconfirmdialog(logintest.this,"用户名不能为空","警告", joptionpane.yes_no_option,joptionpane_error_message); } if(field2.gettext().tostring().equals("")) { joptionpane.showconfirmdialog(logintest.this,"密码不能为空","警告", joptionpane.yes_no_option,joptionpane_error_message); } } }); 当我两个输入框都为空的时候,先弹出用户名和密码不能为空的对话框,接着另外两个对话框也弹出来了,如过我把第三个else语句直接写成else,如; btnlogin.addactionlistener(new actionlistener() { public void actionperformed(actionevent event) { if(field1.gettext().tostring().equals("") & field2.gettext().tostring().equals("")) { joptionpane.showconfirmdialog(logintest.this,"用户名和密码都不能为空","警告", joptionpane.yes_no_option,joptionpane_error_message); } else if(field1.gettext().tostring().equals("")) { joptionpane.showconfirmdialog(logintest.this,"用户名不能为空","警告", joptionpane.yes_no_option,joptionpane_error_message); } else(field2.gettext().tostring().equals("")) { joptionpane.showconfirmdialog(logintest.this,"密码不能为空","警告", joptionpane.yes_no_option,joptionpane_error_message); } } }); 程序就抱错,说我 else(field2.gettext().tostring().equals(""))不是语句,并且后面还差;非要if后面的两个控制语句 都要用else if才不会错,所以我一直感到很疑惑,望大家指点指点是什么原因.按理说应该是if...else if....else或者if...if...if都可以啊! |
|
|
|
|