循环在哪儿?ShowTime()?
我用jdk14没有stop了,要自己判断。
如:while(isStop){
 ShowTime();
}
停止时isStop=false;

解决方案 »

  1.   

    public void ShowTime(){ 
    mm = thetime; 
    String temp; 
    int i; 
    i = 1; 
    while(i * 60 < mm) { i++; } 
    hh = i - 1; 
    mm = mm - 60 * hh; 
    ss = 0; 
    while(hh > 0 || mm > 0 || ss > 0) { 
    try { 
    Thread.sleep(1000); 

    catch(InterruptedException ee) {
    System.out.println("erro" + ee);
    } if(ss == 0) { 
    if( mm == 0) { 
    if(hh==0) { 
    //this.destroy();

    else { 
    hh--; 
    mm = 59; 
    ss = 59; 


    else { 
    mm--; 
    ss = 59; 


    else { 
    ss--;
    }

    if(hh < 10) { temp=new String("      0"+String.valueOf(hh)+" 小时 "); } 
    else { temp=new String("      "+String.valueOf(hh)+" 小时 ");} 
    if(mm < 10) { temp=new String(temp+"0"+String.valueOf(mm)+" 分 "); } 
    else { temp=new String(temp+String.valueOf(mm)+" 分 "); } 
    if(ss < 10) { temp=new String(temp+"0"+String.valueOf(ss)+" 秒 "); } 
    else { temp=new String(temp+String.valueOf(ss)+" 秒 "); } 
    Stime.setText(temp); 
    this.validate(); 
    if((hh == 0) && (mm == 0) && (ss == 0)) { 
    // 结束
    taktime=thetime;
    CenterPanel.setVisible(false);
    ConnectCGI(theurl+"?" + Result());  

    }
    }
      

  2.   

    Thread的stop函数不是已经deprecated了吗?既然deprecated,为什么还要去用呢?
    在写线程时记住两点,首先一个线程时不应该让另外一个线再来停止它的,你上面的代码就是犯了这个错误。第二,run函数里面应该是个循环,不管什么样的循环,都有它的break point,这就是你这个线程结束的case.
      

  3.   

    大体思路也行呀~
    循环怎么写,?showtime里应该怎么写?
      

  4.   

    你的“结束”里面没有对flag赋值为false
    我感觉你生成这个线程有问题:每当你触发这个事件时都会建立一个线程对象,这没有必要。
    这个线程不应该在事件中建立。
    如果是只是时间处理,不如直接用timer类,省去了线程维护。
      

  5.   

    偶觉得在while()中是不是加上一个interrupted()函数的调用
    如果你在这个线程的外部调用了interrupt函数,而这个东西正在sleep,那么可以通过那个异常终止,但是如果线程此时在运行怎么办?
      

  6.   

    我觉得结束一个线程控制住他们的出口条件就行了
    比如
    boolean isOk=true;
    while(isOk)
    {
    if(!isOk) break;
    }
    在另一个线程中可以改变该上isOk的value