一个奇怪的问题求助

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("正在连接服务器....");
这句没有执行。
...全文
168 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zedk928 2004-12-30
  • 打赏
  • 举报
回复
up
zedk 2004-12-29
  • 打赏
  • 举报
回复
把阻塞的代码放入run方法中
怎么阻塞?
zedk 2004-12-27
  • 打赏
  • 举报
回复
up
zedk928 2004-12-24
  • 打赏
  • 举报
回复
zedk 2004-12-24
  • 打赏
  • 举报
回复
up
VickyLan 2004-12-24
  • 打赏
  • 举报
回复
把阻塞的代码放入run方法中
night__cat 2004-12-24
  • 打赏
  • 举报
回复

zedk 2004-12-23
  • 打赏
  • 举报
回复
up
zedk 2004-12-23
  • 打赏
  • 举报
回复
还有我想让
this.dispose();
在btLog的run()里面运行,不知道该怎么改写。
当前的窗体名是frame,我写frame.dispose不行啊。

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧