public class Timer extends Object implements Serializable
ActionEvent s。 
       示例使用是使用Timer作为绘制其帧的触发器的动画对象。 
        设置定时器包括创建一个Timer对象,在其上注册一个或多个动作侦听器,并使用start方法启动定时器。 例如,下面的代码创建并启动每秒一次触发一个动作事件(由第一个参数指定定时器Timer构造函数)。 Timer构造函数的第二个参数指定一个侦听器来接收定时器的动作事件。 
  int delay = 1000; //milliseconds
  ActionListener taskPerformer = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          //...Perform a task...
      }
  };
  new Timer(delay, taskPerformer).start();  
        Timers是通过指定延迟参数和ActionListener 。 延迟参数用于设置事件触发之间的初始延迟和延迟(以毫秒为单位)。 一旦定时器启动,它将等待初始延迟,然后再将其第一个ActionEvent发送到注册的监听器。 在这个第一个事件之后,它会在每次事件间延迟过去之后继续发生事件,直到它停止。 
 施工后,初始延迟和事件间延迟可以独立更改, ActionListeners可以增加ActionListeners 。 
 如果你想让定时器第一次触发然后停止,调用setRepeats(false)上的setRepeats(false) 。 
 虽然所有Timer都使用单个共享线程(由执行的第一个Timer对象创建)执行等待,但是在另一个线程(事件调度线程)上执行Timer的动作事件处理程序。 这意味着Timer的动作处理程序可以安全地对Swing组件执行操作。 但是,这也意味着处理程序必须快速执行以保持GUI的响应。 
 在v 1.3中,另一个Timer类被添加到Java平台: java.util.Timer 。 它和javax.swing.Timer提供了相同的基本功能,但java.util.Timer更通用,具有更多的功能。 javax.swing.Timer有两个功能,可以使它更容易与GUI一起使用。 首先,它的事件处理隐喻是GUI程序员熟悉的,可以使处理事件调度线程更简单一些。 其次,它的自动线程共享意味着你不必采取特殊的步骤来避免产生太多的线程。 相反,您的计时器使用与使光标闪烁相同的线程,显示工具提示等。 
 有关使用定时器的更多文档和几个示例,请访问Java教程中的 How to Use Timers 。 有关更多示例和帮助,选择此Timer类和java.util.Timer ,请参阅Using Timers in Swing Applications , Swing连接中的一篇文章。 
 警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对所有JavaBeans的长期存储的支持已经添加到java.beans包中。 请参阅XMLEncoder 。 
java.util.Timer| Modifier and Type | Field and Description | 
|---|---|
| protected EventListenerList | listenerList | 
| Constructor and Description | 
|---|
| Timer(int delay, ActionListener listener)
              创建一个 
              Timer,并将初始延迟和事件间延迟delay为delay毫秒。 | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addActionListener(ActionListener listener)
              在 
              Timer添加一个动作侦听器。 | 
| protected void | fireActionPerformed(ActionEvent e)
              通知所有在此事件类型上通知有兴趣的听众。 
             | 
| String | getActionCommand()
              返回将交付作为动作命令字符串 
              ActionEvent此计时器所触发秒。 | 
| ActionListener[] | getActionListeners()
              返回在此定时器上注册的所有动作侦听器的数组。 
             | 
| int | getDelay()
              返回动作事件触发之间的延迟(以毫秒为单位)。 
             | 
| int | getInitialDelay()
              返回 
              Timer的初始延迟。 | 
| <T extends EventListener> | getListeners(类<T> listenerType)
              返回当前注册的所有对象的数组 
              FooListener在这个STimer。 | 
| static boolean | getLogTimers()
              如果启用日志记录,则返回 
              true。 | 
| boolean | isCoalesce()
              如果 
              Timer合并多个待处理的动作事件,则返回true。 | 
| boolean | isRepeats()
              返回 
              true(默认值),如果Timer将多次向其侦听器发送一个动作事件。 | 
| boolean | isRunning()
              如果 
              Timer正在运行,则返回true。 | 
| void | removeActionListener(ActionListener listener)
              将删除指定的动作监听 
              Timer。 | 
| void | restart()
              重新启动 
              Timer,取消任何待处理的启动,并使其最初延迟启动。 | 
| void | setActionCommand(String command)
              设置将交付作为动作命令字符串 
              ActionEvent此计时器所触发秒。 | 
| void | setCoalesce(boolean flag)
              设置 
              Timer是否合并多个待处理的ActionEvent点火。 | 
| void | setDelay(int delay)
              设置 
              Timer的事件间延迟,连续动作事件之间的毫秒数。 | 
| void | setInitialDelay(int initialDelay)
              设置 
              Timer的初始延迟,在触发第一个事件之前定时器启动后等待的时间(以毫秒为单位)。 | 
| static void | setLogTimers(boolean flag)
              启用或禁用定时器日志。 
             | 
| void | setRepeats(boolean flag)
              如果 
              flag是false,则Timer仅Timer器发送一个动作事件。 | 
| void | start()
              启动 
              Timer,使其开始向其监听器发送动作事件。 | 
| void | stop()
              停止 
              Timer,使其停止向其监听器发送操作事件。 | 
protected EventListenerList listenerList
public Timer(int delay,
             ActionListener listener) 
          Timer并将初始延迟和事件间延迟delay为delay毫秒。 
           如果delay小于或等于零,定时器在启动时立即触发。 
           如果listener不是null ,则在定时器上注册为动作侦听器。 
          delay - 初始事件延迟和事件间延迟的毫秒数 
           listener - 初始听众; 
            可以null 
           addActionListener(java.awt.event.ActionListener) , 
            setInitialDelay(int) , 
            setRepeats(boolean) 
           public void addActionListener(ActionListener listener)
Timer添加一个动作侦听器。 
          listener - 要添加的侦听器 
           Timer(int, java.awt.event.ActionListener) 
           public void removeActionListener(ActionListener listener)
Timer 。 
          listener - 要删除的侦听器 
           public ActionListener[] getActionListeners()
ActionListener s或一个空数组,如果没有动作侦听器当前注册 
           addActionListener(java.awt.event.ActionListener) , 
            removeActionListener(java.awt.event.ActionListener) 
           protected void fireActionPerformed(ActionEvent e)
e - 发生的动作事件 
           EventListenerList 
           public <T extends EventListener> T[] getListeners(类<T> listenerType)
FooListener的所有对象的数组,这个Timer 。 
           FooListener使用addFooListener 。 
            您可以使用类文字指定listenerType参数,例如FooListener.class 。 例如,您可以使用以下代码查询其操作侦听器的Timer实例t : 
  ActionListener[] als = (ActionListener[])(t.getListeners(ActionListener.class));  
           如果没有这样的侦听器存在,这个方法返回一个空数组。 
          listenerType - 所请求的听众的类型; 
            此参数应指定从java.util.EventListener下降的java.util.EventListener 
           FooListener的所有对象的数组,如果没有添加此类侦听器,则为空数组 
           ClassCastException - 如果 
            listenerType没有指定实现java.util.EventListener的类或 
            java.util.EventListener 
           getActionListeners() , 
            addActionListener(java.awt.event.ActionListener) , 
            removeActionListener(java.awt.event.ActionListener) 
           public static void setLogTimers(boolean flag)
System.out 。 
          flag - 
            true以启用日志记录 
           getLogTimers() 
           public static boolean getLogTimers()
true 。 
          true如果启用日志记录; 
            否则,假 
           setLogTimers(boolean) 
           public void setDelay(int delay)
Timer的事件间延迟,连续动作事件之间的毫秒数。 
           这不影响初始延迟属性,可以通过setInitialDelay方法设置。 
          delay - 以毫秒为单位的延迟 
           setInitialDelay(int) 
           public int getDelay()
setDelay(int) , 
            getInitialDelay() 
           public void setInitialDelay(int initialDelay)
Timer的初始延迟,在触发第一个事件之前定时器启动后等待的时间(以毫秒为单位)。 
           在构造时,这被设置为与事件间延迟相同,但是其值是独立的,并且不受事件延迟之间的改变的影响。 
          initialDelay - 初始延迟(以毫秒为单位) 
           setDelay(int) 
           public int getInitialDelay()
Timer的初始延迟。 
          setInitialDelay(int) , 
            setDelay(int) 
           public void setRepeats(boolean flag)
flag是 
           false ,则 
           Timer只 
           Timer器发送一个动作事件。 
          flag - 指定 
            false使定时器在发送第一个动作事件后停止 
           public boolean isRepeats()
true (默认值),如果 
           Timer将多次向其侦听器发送一个动作事件。 
          setRepeats(boolean) 
           public void setCoalesce(boolean flag)
Timer是否合并多个待处理的ActionEvent 。 
           繁忙的应用程序可能无法跟上Timer的事件生成,导致多个操作事件排队。 
           处理后,应用程序一个接一个地发送这些事件,导致Timer的侦听器在它们之间没有任何延迟地接收一系列事件。 
           合并通过将多个未决事件减少为单个事件来避免这种情况。 
           Timer s默认合并事件。 
          flag -指定 
            false关闭合并 
           public boolean isCoalesce()
Timer合并多个待处理的动作事件,则返回 
           true 。 
          setCoalesce(boolean) 
           public void setActionCommand(String command)
ActionEvent此计时器所触发秒。 
           null是可接受的值。 
          command - action命令 
           public String getActionCommand()
ActionEvent此计时器所触发秒。 
           可能是null ,也是默认值。 
          public void start()
Timer ,使其开始向其监听器发送动作事件。 
          stop() 
           public boolean isRunning()
Timer正在运行,则返回 
           true 。 
          start() 
           public void stop()
Timer ,使其停止向其监听器发送操作事件。 
          start() 
           public void restart()
Timer ,取消任何未决的发射,并使其以其初始延迟触发。 
           Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.