[英]call a method at a specified time
如何每n秒調用一次方法?
我想用Swing和CardLayout進行幻燈片顯示,每隔n秒它必須顯示一個調用不同方法的不同圖像。
import java.util.*;
class MyTimer extends TimerTask
{
public void run()
{
//change image
}
}
然后可以在您的主任務中安排任務:
Timer t = new Timer();
t.schedule(new MyTimer(), 0, 5000);
第一個數字是初始延遲,第二個數字是兩次調用TimerTask
run()
之間的時間:5000為5秒。
如BalusC所述,通常您在AWT事件線程上調度揮桿更改。 在這種簡單的原因下,從外部線程更改背景時不應產生問題,無論如何都應使用
public static void SwingUtilities.invokeLater(Runnable whatToExecute)
在正確的線程上分派您的更改。
如果您更喜歡BalusC方法,請使用ActionListener
:
public void BackgroundChange implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//change bg
}
}
javax.swing.Timer t = new javax.swing.Timer(5000, new BackgroundChange());
它們都提供相同的功能,但是后來的版本已經准備好與Swing線程一起工作,以保持兼容性並避免奇怪的同步問題。
由於使用的是Swing,因此您想使用javax.swing.Timer
。 這是有關該主題的Sun教程 。
有關Swing應用程序中的瑣碎動畫,請查看Trident: http : //kenai.com/projects/trident/pages/Home
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.