以下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();