- すべての実装されたインタフェース:
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」を参照してください。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
フィールドのサマリー
フィールド -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明voidaddActionListener(ActionListener listener) Timerにアクション・リスナーを追加します。protected voidこのイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。このタイマーによってトリガーされたActionEvent内のアクション・コマンドとして配信される文字列を返します。このタイマーに登録されたすべてのアクション・リスナーの配列を返します。intgetDelay()次のアクション・イベントがトリガーされるまでの遅延時間(ミリ秒単位)を返します。intTimerの初期遅延を返します。<T extends EventListener>
T[]getListeners(Class<T> listenerType) このTimerにFooListenerとして現在登録されているすべてのオブジェクトの配列を返します。static booleanロギングが有効な場合にtrueを返します。booleanTimerが保留中の複数のアクション・イベントを合体させる場合はtrueを返します。booleanTimerがアクション・イベントをリスナーに複数回送信する場合は、デフォルトのtrueを返します。booleanTimerが実行中の場合はtrueを返します。voidremoveActionListener(ActionListener listener) 指定されたアクション・リスナーをTimerから削除します。voidrestart()Timerを再起動します。このとき、イベントのトリガーが保留中の場合は取り消し、初期遅延を使用してイベントをトリガーします。voidsetActionCommand(String command) このタイマーによってトリガーされたActionEvent内のアクション・コマンドとして配信される文字列を設定します。voidsetCoalesce(boolean flag) Timerが保留中の複数のActionEventトリガーを合体させるかどうかを設定します。voidsetDelay(int delay) 連続するアクション・イベントのイベント間のTimerの遅延時間をミリ秒単位で設定します。voidsetInitialDelay(int initialDelay) Timerの初期遅延をミリ秒単位で設定します。初期遅延とは、タイマーが起動したあと、最初のイベントをトリガーするまでの待ち時間のことです。static voidsetLogTimers(boolean flag) タイマーのログを有効または無効にします。voidsetRepeats(boolean flag) flagがfalseの場合、アクション・イベントを1つだけリスナーへ送信するようにTimerに命令します。voidstart()Timerを起動し、リスナーへのアクション・イベントの送信を開始します。voidstop()Timerを停止し、リスナーへのアクション・イベントの送信を停止します。
-
フィールド詳細
-
listenerList
protected EventListenerList listenerList登録済みリスナーのコレクションです。
-
-
コンストラクタの詳細
-
Timer
public Timer(int delay, ActionListener listener) Timerを作成し、初期遅延とイベント間遅延をdelayミリ秒に初期化します。delayが0以下の場合、タイマーは起動と同時にイベントをトリガーします。listenerがnull以外の場合は、タイマーのアクション・リスナーとして登録されます。- パラメータ:
delay- 初期遅延とイベント間遅延を表す値(ミリ秒)listener- 初期のリスナー。nullの場合もあり- 関連項目:
-
-
メソッドの詳細
-
addActionListener
public void addActionListener(ActionListener listener) Timerにアクション・リスナーを追加します。- パラメータ:
listener- 追加するリスナー- 関連項目:
-
removeActionListener
public void removeActionListener(ActionListener listener) 指定されたアクション・リスナーをTimerから削除します。- パラメータ:
listener- 削除するリスナー
-
getActionListeners
public ActionListener[] getActionListeners()このタイマーに登録されたすべてのアクション・リスナーの配列を返します。- 戻り値:
- タイマーのすべての
ActionListener、現在登録されているリスナーがない場合は空の配列 - 導入されたバージョン:
- 1.4
- 関連項目:
-
fireActionPerformed
protected void fireActionPerformed(ActionEvent e) このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。- パラメータ:
e- トリガーするアクション・イベント- 関連項目:
-
getListeners
public <T extends EventListener> T[] getListeners(Class<T> listenerType) このTimerにFooListenerとして現在登録されているすべてのオブジェクトの配列を返します。FooListenerは、addFooListenerメソッドを使用して登録されます。FooListener.classなどのクラス・リテラルを使用してlistenerType引数を指定できます。 たとえば、次のコードを使用すると、Timerインスタンスtのアクション・リスナーを照会できます。ActionListener[] als = (ActionListener[])(t.getListeners(ActionListener.class));
このようなリスナーがない場合は空の配列を返します。- 型パラメータ:
T-EventListenerクラスの型がリクエストされています- パラメータ:
listenerType- 要求されるリスナーの型;java.util.EventListenerの下位インタフェースを指定- 戻り値:
- このタイマーに
FooListenerとして登録されたすべてのオブジェクトの配列、またはこのようなリスナーが追加されていない場合は空の配列 - スロー:
ClassCastException-listenerTypeで、java.util.EventListenerを実装するクラスまたはインタフェースが指定されなかった場合- 導入されたバージョン:
- 1.3
- 関連項目:
-
setLogTimers
public static void setLogTimers(boolean flag) タイマーのログを有効または無効にします。 有効にすると、タイマーが切れたときにSystem.outにメッセージが送られます。- パラメータ:
flag- ログを有効にする場合はtrue- 関連項目:
-
getLogTimers
public static boolean getLogTimers()ロギングが有効な場合にtrueを返します。- 戻り値:
- ロギングが有効な場合は
true、そうでない場合はfalse - 関連項目:
-
setDelay
public void setDelay(int delay) 連続するアクション・イベントのイベント間のTimerの遅延時間をミリ秒単位で設定します。 これは初期遅延のプロパティには影響を及ぼしません。初期遅延のプロパティはsetInitialDelayメソッドで設定可能です。- パラメータ:
delay- 遅延時間(ミリ秒単位)- 関連項目:
-
getDelay
public int getDelay()次のアクション・イベントがトリガーされるまでの遅延時間(ミリ秒単位)を返します。- 戻り値:
- アクション・イベントの発生間の遅延(ミリ秒)
- 関連項目:
-
setInitialDelay
public void setInitialDelay(int initialDelay) Timerの初期遅延をミリ秒単位で設定します。初期遅延とは、タイマーが起動したあと、最初のイベントをトリガーするまでの待ち時間のことです。 構築時にはイベント間遅延と同じ値が設定されていますが、その後は別々に変更可能です。イベント間遅延が変更されても、初期遅延に影響はありません。- パラメータ:
initialDelay- 初期遅延(ミリ秒単位)- 関連項目:
-
getInitialDelay
public int getInitialDelay()Timerの初期遅延を返します。- 戻り値:
Timerの初期遅延(ミリ秒)- 関連項目:
-
setRepeats
public void setRepeats(boolean flag) flagがfalseの場合、アクション・イベントを1つだけリスナーへ送信するようにTimerに命令します。- パラメータ:
flag- 最初のアクション・イベントの送信後、タイマーを停止する場合はfalseを指定する
-
isRepeats
public boolean isRepeats()Timerがアクション・イベントをリスナーに複数回送信する場合は、デフォルトのtrueを返します。- 戻り値:
Timerがアクション・イベントをそのリスナーに複数回送信する場合はtrue- 関連項目:
-
setCoalesce
public void setCoalesce(boolean flag) Timerが保留中の複数のActionEventトリガーを合体させるかどうかを設定します。 ビジー・アプリケーションはTimerのイベント生成に追いつけないことがあるため、結果として複数のアクション・イベントがキューに入ります。 処理が行われると、アプリケーションはこうしたイベントを次々と送るので、Timerのリスナーは遅延なく一連のイベントを受け取ります。 保留中の複数イベントを1つのイベントに合体すればこの状況を避けられます。Timerは、そうしたイベントをデフォルトで1つに合体します。- パラメータ:
flag- 合体をオフにする場合はfalse
-
isCoalesce
public boolean isCoalesce()Timerが保留中の複数のアクション・イベントを合体させる場合はtrueを返します。- 戻り値:
Timerが複数の保留中のアクション・イベントを結合する場合はtrue- 関連項目:
-
setActionCommand
public void setActionCommand(String command) このタイマーによってトリガーされたActionEvent内のアクション・コマンドとして配信される文字列を設定します。nullも設定可能です。- パラメータ:
command- アクション・コマンド- 導入されたバージョン:
- 1.6
-
getActionCommand
public String getActionCommand()このタイマーによってトリガーされたActionEvent内のアクション・コマンドとして配信される文字列を返します。 デフォルトのnullも設定できます。- 戻り値:
- イベントのトリガーに使用するアクション・コマンド
- 導入されたバージョン:
- 1.6
-
start
public void start()Timerを起動し、リスナーへのアクション・イベントの送信を開始します。- 関連項目:
-
isRunning
public boolean isRunning()Timerが実行中の場合はtrueを返します。- 戻り値:
Timerが実行されている場合はtrue、それ以外の場合はfalse- 関連項目:
-
stop
public void stop()Timerを停止し、リスナーへのアクション・イベントの送信を停止します。- 関連項目:
-
restart
public void restart()Timerを再起動します。このとき、イベントのトリガーが保留中の場合は取り消し、初期遅延を使用してイベントをトリガーします。
-