一个奇怪的问题求助
zedk 2004-12-23 11:36:03 我给按钮增加了点击事件,代码如下:
void btLog_actionPerformed(ActionEvent e) {
//验证输入的用户名密码
String MyNum = txtname.getText().trim();
String pwd = new String(txtpassword.getPassword());
try {
Config.setProfileString("Config.ini", "public", "LastNum", MyNum);
}
catch (Exception ex) {
ex.printStackTrace();
}
if (MyNum.equals("") && pwd.equals("")) {
lblInfo.setText("请输入用户名和密码!");
return;
}
else {
//登陆提示
lblInfo.setText("正在连接服务器....");
btLog btlog = new btLog(MyNum,pwd);
Thread login = new Thread(btlog);
login.start();
}
this.dispose();
}
其中btlog的代码如下
//增加方法继承线程
class btLog
implements Runnable {
boolean done = false;
String MyNum;
String pwd;
public btLog(String MyNum,String pwd){
this.MyNum = MyNum;
this.pwd = pwd;
}
public void run(){
while (!done) {
//验证密码并登陆
try { //定位WSDL文件的位置
OnLineLocator log = new OnLineLocator();
//获得Web Service的引用
OnLineSoap logs = (OnLineSoap) log.getOnLineSoap();
if (logs.userLogIn(MyNum, pwd)) {
MainFrame main = new MainFrame(MyNum);
main.setVisible(true);
done = true;
}
else {
lblInfo.setText("用户号或密码错误");
}
}
catch (Exception ex) {
lblInfo.setText("网络连接失败");
ex.fillInStackTrace();
}
}
}
}
问题是为什么我的程序使用了线程,界面还是处于锁死的状态?
lblInfo.setText("正在连接服务器....");
这句没有执行。