public class Timer extends Object implements Serializable
ActionEventをトリガーします。 たとえば、アニメーション・オブジェクトは、フレームを描画するトリガーとしてTimerを使用します。
タイマーの設定には、Timerオブジェクトの生成、オブジェクトへの1つ以上のアクション・リスナーの登録、およびstartメソッドを使用したタイマーの起動が含まれます。 たとえば、次に示すコードでは、Timerコンストラクタへの最初の引数によって指定されたように、アクション・イベントが1秒間に1回生成されて起動されます。 Timerコンストラクタへの2番目の引数では、タイマーのアクション・イベントを受信するリスナーを指定しています。
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を追加することもできます。
タイマーを1回だけトリガーしたあと停止するには、タイマーでsetRepeats(false)を呼び出します。
すべてのTimerは、実行する最初のTimerオブジェクトが作成した単一の共有スレッドを使用して待機処理を実行しますが、Timerのアクション・イベント・ハンドラは、それとは別のイベント・ディスパッチ・スレッドで実行されます。 そのため、Timerのアクション・イベント・ハンドラはSwingコンポーネントの操作を安全に実行できます。 ただし、ハンドラは、GUIの応答を維持できるよう、迅速に動作する必要があります。
バージョン1.3では、新しいTimerクラスjava.util.TimerがJavaプラットフォームに追加されています。 このクラスとjavax.swing.Timerの基本的な機能は同じですが、java.util.Timerはより汎用的でより多くの機能を持っています。 javax.swing.Timerには、GUIでの使用を容易にする2つの特徴があります。 1番目は、イベント処理メタファがGUIプログラマになじみのあるもので、イベント・ディスパッチ・スレッドの扱いが簡単になっていることです。 2番目は、自動共有スレッドにより、生成するスレッドの数が多大になるのを回避するための特別なステップが不要になることです。 ただし、タイマーは、カーソルの点滅やツールヒントの表示などと同じスレッドを使用します。
タイマーの詳細と使用例については、『The Java Tutorial』の「How to Use Timers」を参照してください。 このTimerクラスとjava.util.Timerの選択基準や使用例については、『The Swing Connection』の「Using Timers in Swing Applications」を参照してください。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースとの互換性がなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。
java.util.Timer| 修飾子と型 | フィールド | 説明 |
|---|---|---|
protected EventListenerList |
listenerList |
| コンストラクタ | 説明 |
|---|---|
Timer(int delay, ActionListener listener) |
Timerを作成し、初期遅延とイベント間遅延をdelayミリ秒に初期化します。 |
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
void |
addActionListener(ActionListener listener) |
Timerにアクション・リスナーを追加します。 |
protected void |
fireActionPerformed(ActionEvent e) |
このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。
|
String |
getActionCommand() |
このタイマーによってトリガーされた
ActionEvent内のアクション・コマンドとして配信される文字列を返します。 |
ActionListener[] |
getActionListeners() |
このタイマーに登録されたすべてのアクション・リスナーの配列を返します。
|
int |
getDelay() |
次のアクション・イベントがトリガーされるまでの遅延時間(ミリ秒単位)を返します。
|
int |
getInitialDelay() |
Timerの初期遅延を返します。 |
<T extends EventListener> |
getListeners(Class<T> listenerType) |
この
TimerにFooListenerとして現在登録されているすべてのオブジェクトの配列を返します。 |
static boolean |
getLogTimers() |
ロギングが有効な場合に
trueを返します。 |
boolean |
isCoalesce() |
Timerが保留中の複数のアクション・イベントを合体させる場合はtrueを返します。 |
boolean |
isRepeats() |
Timerがアクション・イベントをリスナーに複数回送信する場合は、デフォルトのtrueを返します。 |
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の場合、アクション・イベントを1つだけリスナーへ送信するようにTimerに命令します。 |
void |
start() |
Timerを起動し、リスナーへのアクション・イベントの送信を開始します。 |
void |
stop() |
Timerを停止し、リスナーへのアクション・イベントの送信を停止します。 |
protected EventListenerList listenerList
public Timer(int delay,
ActionListener listener)
Timerを作成し、初期遅延とイベント間遅延をdelayミリ秒に初期化します。 delayが0以下の場合、タイマーは起動と同時にイベントをトリガーします。 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、現在登録されているリスナーがない場合は空の配列addActionListener(java.awt.event.ActionListener), removeActionListener(java.awt.event.ActionListener)protected void fireActionPerformed(ActionEvent e)
e - トリガーするアクション・イベントEventListenerListpublic <T extends EventListener> T[] getListeners(Class<T> listenerType)
TimerにFooListenerとして現在登録されているすべてのオブジェクトの配列を返します。 FooListenerは、addFooListenerメソッドを使用して登録されます。
FooListener.classなどのクラス・リテラルを使用してlistenerType引数を指定できます。 たとえば、次のコードを使用すると、Timerインスタンスtのアクション・リスナーを照会できます。
ActionListener[] als = (ActionListener[])(t.getListeners(ActionListener.class));このようなリスナーがない場合は空の配列を返します。
listenerType - 要求されるリスナーの型; java.util.EventListenerの下位インタフェースを指定FooListenerとして登録されたすべてのオブジェクトの配列、またはこのようなリスナーが追加されていない場合は空の配列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 - ログを有効にする場合はtruegetLogTimers()public static boolean getLogTimers()
trueを返します。true、そうでない場合はfalsesetLogTimers(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の場合、アクション・イベントを1つだけリスナーへ送信するようにTimerに命令します。flag - 最初のアクション・イベントの送信後、タイマーを停止する場合はfalseを指定するpublic boolean isRepeats()
Timerがアクション・イベントをリスナーに複数回送信する場合は、デフォルトのtrueを返します。setRepeats(boolean)public void setCoalesce(boolean flag)
Timerが保留中の複数のActionEventトリガーを合体させるかどうかを設定します。 ビジー・アプリケーションはTimerのイベント生成に追いつけないことがあるため、結果として複数のアクション・イベントがキューに入ります。 処理が行われると、アプリケーションはこうしたイベントを次々と送るので、Timerのリスナーは遅延なく一連のイベントを受け取ります。 保留中の複数イベントを1つのイベントに合体すればこの状況を避けられます。 Timerは、そうしたイベントをデフォルトで1つに合体します。 flag - 合体をオフにする場合はfalsepublic boolean isCoalesce()
Timerが保留中の複数のアクション・イベントを合体させる場合はtrueを返します。setCoalesce(boolean)public void setActionCommand(String command)
ActionEvent内のアクション・コマンドとして配信される文字列を設定します。nullも設定可能です。command - アクション・コマンド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を再起動します。このとき、イベントのトリガーが保留中の場合は取り消し、初期遅延を使用してイベントをトリガーします。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。