一个奇怪的问题求助
我给按钮增加了点击事件,代码如下:
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("正在连接服务器....");
这句没有执行。
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("正在连接服务器....");
这句没有执行。
...全文
相关推荐
MFC测试工程(有问题,难解决)
该MFC工程有些奇怪的问题,看看有没高手能解决。几天后会删除该资源
2020届高考英语二轮复习专题三完形填空练习
2020届高考英语二轮复习专题三完形填空练习
九年级英语ReadingPPT课件.pptx
九年级英语ReadingPPT课件.pptx
2015语文A版语文一下《找汗》ppt课件
2015语文A版语文一下《找汗》ppt课件
一个奇怪的问题使用ajax提交必须alert才能赋值
一个奇怪的问题,在使用ajax提交的时候将返回值赋给一个变量,无论怎么写都没法赋值,刚开始怀疑js有错但是ie没有反应过来,多次清缓存、部程序都没效果。。。。。。最后只好一行一行的alert看原因出在哪里;奇怪的是加上了alert之后就可以赋值,删掉alert后就又不可以了。百度了一下发现是因为ajax默认是异步执行的,也就是并没有等待请求完毕就开始执行下一行js语句了,导致赋值为null。 如果遇到ajax请求后有回调函数之类的问题就要加上async:false,注意如果是给false加上引号是没发解决问题的。 代码如下: $.ajax({ async:false })


Java SE
