以下run()所在的类负责与服务器端通信,tfd 是一个JTextArea,用来显示提示信息,用整型变量i显示while循环运行的次数,运行时发现tfd中显示到“GO2”就没有下文了,也就是只按开始按钮时读取了一道题的内容和考试时间,再按读取下一题时就没有反应,可服务器端显示正确输入试题内容,而且这边也没有任何异常显示,不知道是什么原因,郁闷得快要死掉了!!!!!!!!
private Runnable rn=new Runnable(){
public void run(){
int i=0;//////////TEST!!!!!!!!!!!!
String s=null;
while(true){
try{
s=in.readUTF();
i++;/////////////!!!!!!
tfd.append("GO"+i);
}
catch(Exception e){
tfd.setText("和服务器的连接已经断开");
}
if(s!=null){
if(s.startsWith("分数")){
txtShowAnswer.setText("\n"+s);
}
else if(s.startsWith("试题内容")){
tfd.append(s);
txtShowAsk.setText("\n"+s);
txtShowAsk.repaint();
}
else if(s.startsWith("考试结束")){
timer.stop();
}
else if(s.startsWith("考试用时")){
tfd.append(s);
String str=s.substring(s.indexOf(":")+1);
leftTime=Long.parseLong(str);
long leftHour=leftTime/3600;
long leftMinute=(leftTime-leftHour*3600)/60;
long leftSecond=leftTime%60;
tfdShowTime.setText("剩余时间:"+leftHour+"小时"+leftMinute+"分"+leftSecond+"秒");
tfdShowTime.repaint();
timer.start();
}
else if(s.startsWith("考试结束")){
timer.stop();
}
else
//tfd.setText("NO RIGHT CONTENTE ERROR!!!");
tfd.append("NO RIGHT CONTENTE ERROR!!!");
}
else tfd.append("THREAD RUN ERROR READ NULL!");
try{
Thread.sleep(5);
}
catch(Exception e){tfd.setText("THREAD SLEEP ERROR!");}
continue;
}
}
};
private Runnable rn=new Runnable(){
public void run(){
int i=0;//////////TEST!!!!!!!!!!!!
String s=null;
while(true){
try{
s=in.readUTF();
i++;/////////////!!!!!!
tfd.append("GO"+i);
}
catch(Exception e){
tfd.setText("和服务器的连接已经断开");
}
if(s!=null){
if(s.startsWith("分数")){
txtShowAnswer.setText("\n"+s);
}
else if(s.startsWith("试题内容")){
tfd.append(s);
txtShowAsk.setText("\n"+s);
txtShowAsk.repaint();
}
else if(s.startsWith("考试结束")){
timer.stop();
}
else if(s.startsWith("考试用时")){
tfd.append(s);
String str=s.substring(s.indexOf(":")+1);
leftTime=Long.parseLong(str);
long leftHour=leftTime/3600;
long leftMinute=(leftTime-leftHour*3600)/60;
long leftSecond=leftTime%60;
tfdShowTime.setText("剩余时间:"+leftHour+"小时"+leftMinute+"分"+leftSecond+"秒");
tfdShowTime.repaint();
timer.start();
}
else if(s.startsWith("考试结束")){
timer.stop();
}
else
//tfd.setText("NO RIGHT CONTENTE ERROR!!!");
tfd.append("NO RIGHT CONTENTE ERROR!!!");
}
else tfd.append("THREAD RUN ERROR READ NULL!");
try{
Thread.sleep(5);
}
catch(Exception e){tfd.setText("THREAD SLEEP ERROR!");}
continue;
}
}
};
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货