2011-05-25 54 views
0
new java.util.Timer().schedule(
    new java.util.TimerTask() { 
    @Override 
    public void run() { 
     // my code is here card.getJLabel().setVisible(false); 
     } 
    }, 3000 // < my parameter); 

如何創建此函數的一個簡短函數,我在不同的函數中使用它,所以如果我可以創建此函數的簡短版本,那麼它將是乾淨的。如何創建此代碼塊的短版本

另外,我對java很陌生,所以我應該閱讀哪些材料才能瞭解有關此特定主題的更多信息。 感謝的人:)

回答

1

只要把代碼,片斷在一個單獨的方法,並調用該方法要運行的代碼段的時間:

public void scheduleHideCard() { 
    new java.util.Timer().schedule(
     new java.util.TimerTask() { 
      @Override 
      public void run() { 
       // my code is here card.getJLabel().setVisible(false); 
      } 
     }, 3000 // < my parameter); 
} 

...和做調用方法scheduleHideCard()

如果您使用的是Eclipse,您甚至可以選擇代碼片段並執行Source - > Refactor - > Extract Method,它將負責爲您提取適當的參數。

作爲一個側面說明:如果您使用從java.util包若干類,您可以MANT在該文件的頂部導入這些類:

import java.util.*; 
1

如果我理解正確的話,你想將這些代碼提取到像這樣的單獨方法中?

void scheduleSomeActivity() { 
    new java.util.Timer().schedule(...); 
} 

或者可能轉動例如,延遲到一個參數:

void scheduleSomeActivityWithDelay(long delay) { 
    new java.util.Timer().schedule(..., delay); 
} 
2

。假定有什麼可以從一個呼叫切換到另一種是被隱藏的carddelay以前被隱藏:

public void hideCard(MyCard card, long delay){ 
    new java.util.Timer().schedule(
    new java.util.TimerTask() { 
     @Override 
     public void run() { 
     card.getJLabel().setVisible(false); 
     } 
    }, delay); 
    } 

這是一個良好的開端refactoringrefactoring with Eclipse