2013-12-11 35 views
0

這可能是一個快速和新手修復,但我現在絕望。當我使用Thread.sleep時,它會停止整個JFrame,有沒有快速解決這個問題?如何停止thread.sleep從停止整個JFrame

示例代碼

public void delay() throws InterruptedException { 
    //Construct to create a delay. 
    Thread.sleep (30); 
} 
+1

延遲的目的是什麼?什麼方法調用'delay()'? –

+0

嘗試使用中斷。線程t =新線程(); t.sleep(30); t.interrupt(); – MrMins

+3

你在做什麼?不要**在Swing事件派發線程上調用sleep()! –

回答

0

如果它只是想實現一個延時,javax.swing.Timer是一個不錯的選擇。你可以這樣使用它:

public void delay(){ 
     Timer timer = new Timer(30, new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent ae) { 
       //do stuff after delay 
      } 
     }); 
     timer.start(); 
    } 

如果你顯示更多的代碼,這可能會得到改善。你可以找到一個教程HERE