public class Timer extends Object implements Serializable
ActionEvent
s。一个例子使用的是一个动画对象使用
Timer
作为绘制帧触发。
设置一个定时器涉及创建一个Timer
对象,注册一个或多个动作监听器,并利用start
方法启动定时器。例如,下面的代码创建和定时器触发一个动作事件每秒一次开始(如对Timer
构造函数的第一个参数指定)。到Timer
第二个参数指定接收定时器的动作事件监听器。
延时= 1000;//毫秒功能taskperformer =新actionlistener() {public void actionPerformed(ActionEvent EVT){/执行一个任务…}};新的定时器(延迟,taskperformer start());
Timers
由指定的延迟参数和一个ActionListener
构造。延迟参数用于设置初始延迟和事件触发之间的延迟,以毫秒为单位。一旦定时器已经启动,等待初始延迟发射其第一ActionEvent
注册侦听器之前。在这第一个事件之后,它继续发生在事件延迟之间的每一次发生的事件,直到它被停止为止。
施工后,初始延迟和延迟之间的事件都可以独立地变化,和额外的ActionListeners
可以添加。
如果你想定时器火才第一次后停止,调用setRepeats(false)
在定时器。
尽管所有的Timer
s履行等使用一个单一的,共享的线程(由第一Timer
对象执行创建),为Timer
s动作事件处理程序执行另一个线程的事件调度线程。这意味着Timer
s动作处理程序可以安全地在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()
返回的字符串将作为
ActionEvent s被这个定时器动作命令传递。
|
ActionListener[] |
getActionListeners()
返回在这个计时器上注册的所有操作侦听器的数组。
|
int |
getDelay()
返回毫秒的延迟,事件触发,行动之间。
|
int |
getInitialDelay()
返回
Timer 的初始延迟。
|
<T extends EventListener> |
getListeners(类<T> listenerType)
返回对象的当前注册为
FooListener s在这
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)
设置字符串将作为
ActionEvent s被这个定时器动作命令传递。
|
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()
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
s在这
Timer
数组。
FooListener
s使用
addFooListener
方法注册。
您可以指定一个类的listenerType
字面的说法,如FooListener.class
。例如,你可以查询其监听行动用下面的代码实例t
Timer
:
ALS功能[ ] =(action [ ])(t.getlisteners(action。类));如果没有这样的听众的存在,此方法将返回空数组。
listenerType
-听众的类型要求;这个参数应该指定一个接口,从
java.util.EventListener
FooListener
s数组,或一个空数组如果没有这样的听众已添加
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
的听众接收序列之间没有延误事件。可避免了这种情况的减少多悬而未决的事件到一个单一的事件。
Timer
s合并事件的默认。
flag
-指定
false
关掉凝聚
public boolean isCoalesce()
true
如果
Timer
合并多个未决诉讼事件。
setCoalesce(boolean)
public void setActionCommand(String command)
ActionEvent
s被这个定时器动作命令传递。
null
是一个可接受的值。
command
-动作命令
public String getActionCommand()
ActionEvent
s被这个定时器动作命令传递。可能是
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.