代码太多,主要问题在这儿: 
   public static void main(String[] args){
        ClientListener c=new ClientListener();//声明一连接实例
        c.setVisible(true);//该实例中有Frame,所以......
        long t=System.currentTimeMillis();//得到当前时间
        t=t+1000;        while(true){
          if(System.currentTimeMillis()>t){//当当前时间大于t所指时间时,连接服务器
            if(!c.getServerMessage().equals(""))//判断连接所得数据是否为""
              c.setTextAreaContent(c.getServerMessage());//显示数据
             else c.setTextAreaContent("未能连接到服务器,请稍候...");//否则....
            t=t+30000;//30秒连一次
          }
         }   }

解决方案 »

  1.   

    你要让你的线程执行一段时间就sleep一段时间以释放cpu资源
      

  2.   

     public static void main(String[] args){
            ClientListener c=new ClientListener();//声明一连接实例
            c.setVisible(true);//该实例中有Frame,所以......
            long t=System.currentTimeMillis();//得到当前时间
            t=t+1000;        while(true){
              try{Thread.sleep(t);}catch(Exception e){}          if(!c.getServerMessage().equals(""))//判断连接所得数据是否为""
                  c.setTextAreaContent(c.getServerMessage());//显示数据
                else c.setTextAreaContent("未能连接到服务器,请稍候...");//否则....
                t=t+30000;//30秒连一次
           }
              }