簡體   English   中英

在指定時間調用方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM