2017-01-11 44 views
0

我有兩個JFrames A和B.我有一個運行在幀A上的gif。在一段時間後,我想關閉幀A並顯示幀B.我使用下面的代碼,但它一旦程序執行就會觸發行動。我該如何解決這個問題?使用擺動計時器在JFrames之間切換

ActionListener taskPerformer = new ActionListener() { 
    public void actionPerformed(ActionEvent evt) { 
     new FrameB().setVisible(true); 
    } 
}; 
Timer timer = new Timer(100 ,taskPerformer); 
timer.setRepeats(false); 
timer.start(); 

回答

5

你已經寫了計時器來激活100毫秒後,你打電話開始,這幾乎是一眨眼的事情。所以它只是在做你所說的事情。如果你想延長時間,那麼編碼時間會更長。您也可以通過setInitialDelay(...)明確設置初始延遲,但這並不會改變任何內容。

然而,在你進一步研究這個項目之前,請閱讀The Use of Multiple JFrames: Good or Bad Practice?

+0

爲什麼你只需要看100毫秒這樣的問題來確定解決方案? – GhostCat

+0

@GhostCat:我認爲這是一個「一次性」,所以我將其作爲社區wiki進行了回答。 –