public class Timer extends Object implements Serializable
ActionEvents。一个例子使用的是一个动画对象使用
Timer作为绘制帧触发。
设置一个定时器涉及创建一个Timer对象,注册一个或多个动作监听器,并利用start方法启动定时器。例如,下面的代码创建和定时器触发一个动作事件每秒一次开始(如对Timer构造函数的第一个参数指定)。到Timer第二个参数指定接收定时器的动作事件监听器。
延时= 1000;//毫秒功能taskperformer =新actionlistener() {public void actionPerformed(ActionEvent EVT){/执行一个任务…}};新的定时器(延迟,taskperformer start());
Timers由指定的延迟参数和一个ActionListener构造。延迟参数用于设置初始延迟和事件触发之间的延迟,以毫秒为单位。一旦定时器已经启动,等待初始延迟发射其第一ActionEvent注册侦听器之前。在这第一个事件之后,它继续发生在事件延迟之间的每一次发生的事件,直到它被停止为止。
施工后,初始延迟和延迟之间的事件都可以独立地变化,和额外的ActionListeners可以添加。
如果你想定时器火才第一次后停止,调用setRepeats(false)在定时器。
尽管所有的Timers履行等使用一个单一的,共享的线程(由第一Timer对象执行创建),为Timers动作事件处理程序执行另一个线程的事件调度线程。这意味着Timers动作处理程序可以安全地在Swing组件进行操作。然而,它也意味着处理程序必须快速执行,以保持图形用户界面响应性。
在V 1.3,另一个Timer类添加到java平台:java.util.Timer。它和javax.swing.Timer提供相同的基本功能,但java.util.Timer是更一般的和有更多的功能。的javax.swing.Timer有两个特点,可以使它更容易使用的图形用户界面。首先,它的事件处理的比喻是熟悉的图形用户界面程序员,可以使处理事件调度线程有点简单。第二,它的自动线程共享意味着你不必采取特殊的步骤,以避免产卵太多线程。相反,你的定时器使用使光标闪烁相同的线程,出现工具提示,等等。
你可以找到更多的资料和访问How to Use Timers使用定时器的几个例子,java教程中的一部分。更多的例子,有助于在这个Timer类和java.util.Timer,看到Using Timers in Swing Applications之间选择,在秋千上连接的一篇文章。
警告:序列化该类的对象与以后的Swing版本不兼容。当前的序列化支持适用于短期贮藏或RMI运行相同Swing版本的应用程序之间。为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毫秒延迟。
|
| Modifier and Type | Method and Description |
|---|---|
void |
addActionListener(ActionListener listener)
添加一个监听行动的
Timer。
|
protected void |
fireActionPerformed(ActionEvent e)
通知所有的听众,关于这一事件的类型通知已注册的兴趣。
|
String |
getActionCommand()
返回的字符串将作为
ActionEvents被这个定时器动作命令传递。
|
ActionListener[] |
getActionListeners()
返回在这个计时器上注册的所有操作侦听器的数组。
|
int |
getDelay()
返回毫秒的延迟,事件触发,行动之间。
|
int |
getInitialDelay()
返回
Timer的初始延迟。
|
<T extends EventListener> |
getListeners(类<T> listenerType)
返回对象的当前注册为
FooListeners在这
Timer数组。
|
static boolean |
getLogTimers()
返回
true如果启用了日志记录。
|
boolean |
isCoalesce()
返回
true如果
Timer合并多个未决诉讼事件。
|
boolean |
isRepeats()
返回
true(默认)如果
Timer将发送一个动作事件的听众多次。
|
boolean |
isRunning()
返回
true如果
Timer运行。
|
void |
removeActionListener(ActionListener listener)
从
Timer移除指定的监听行动。
|
void |
restart()
重新启动
Timer,取消任何挂起的事件,导致火灾的初始延迟。
|
void |
setActionCommand(String command)
设置字符串将作为
ActionEvents被这个定时器动作命令传递。
|
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只发送一个动作事件的听众。
|
void |
start()
开始
Timer,导致它开始发送动作事件的听众。
|
void |
stop()
停止
Timer,导致它停止发送动作事件的听众。
|
protected EventListenerList listenerList
public Timer(int delay,
ActionListener listener)
Timer和初始化的初始延迟和事件之间
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()
ActionListeners或空数组如果没有行动的听众正在注册
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)
FooListeners在这
Timer数组。
FooListeners使用
addFooListener方法注册。
您可以指定一个类的listenerType字面的说法,如FooListener.class。例如,你可以查询其监听行动用下面的代码实例t Timer:
ALS功能[ ] =(action [ ])(t.getlisteners(action。类));如果没有这样的听众的存在,此方法将返回空数组。
listenerType -听众的类型要求;这个参数应该指定一个接口,从
java.util.EventListener
FooListeners数组,或一个空数组如果没有这样的听众已添加
ClassCastException -如果
listenerType不指定一个类或接口实现
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的初始延迟。
public void setRepeats(boolean flag)
flag是
false,指示
Timer只发送一个动作事件的听众。
flag -指定
false发送它的第一个行动事件后使定时器停止
public boolean isRepeats()
true(默认)如果
Timer将发送一个动作事件的听众多次。
setRepeats(boolean)
public void setCoalesce(boolean flag)
Timer合并多个挂起的
ActionEvent触发。一个繁忙的应用程序可能无法跟上
Timer的事件的产生,造成多个动作事件要排队。加工时,应用程序将这些事件一个接一个,导致
Timer的听众接收序列之间没有延误事件。可避免了这种情况的减少多悬而未决的事件到一个单一的事件。
Timers合并事件的默认。
flag -指定
false关掉凝聚
public boolean isCoalesce()
true如果
Timer合并多个未决诉讼事件。
setCoalesce(boolean)
public void setActionCommand(String command)
ActionEvents被这个定时器动作命令传递。
null是一个可接受的值。
command -动作命令
public String getActionCommand()
ActionEvents被这个定时器动作命令传递。可能是
null,这也是默认的。
public void start()
Timer,导致它开始发送动作事件的听众。
stop()
public boolean isRunning()
true如果
Timer运行。
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.