把Thread.sleep(2000);加到drawString(s,100,100);方法里面

解决方案 »

  1.   

    其实你
    “String s="Level "+level;
    goff.drawString(s,100,100);//goff是Graphics对象
    Thread.sleep(2000);
    catch(InterruptedException e){}

    这样写的话,程序跑起来后,显示文字的时间同“Thread.sleep(2000)”无关,
    “Thread.sleep(2000)”的意识是线程停2000毫秒再跑,
    如希望文字显示2000毫秒后消失,应该Thread.sleep(2000)后再做一个清除文字的动作。
      

  2.   

    这样做:
    public void paint(Graphics g) {
      if(s.length() != 0)
          g.drawString(s,xx,yy);
      new Thread(new Runnable(){
        public void run() {
          try{
            Thread.sleep(2000);
          }catch(Exception e){}
          s = "";
          repaint();
        }
      }).start();
      ...
     }
      

  3.   

    上面的方法的确可行吧
    但好像并不是太好的解决方法
    我认为用wait可能会稍好一点
      

  4.   

    用wait不妥吧,这里只是一个延时而已,没有锁的争抢,用sleep才对啊
      

  5.   

    whyman(湿文):
    我没有试过我给的方法?