- すべての実装されたインタフェース:
- Serializable
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を参照してください。 
- 導入されたバージョン:
- 1.2
- 関連項目:
- Timer
- 
フィールドのサマリーフィールド 修飾子と型 フィールド 説明 protected EventListenerListlistenerList登録済みリスナーのコレクションです。
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 Timer(int delay, ActionListener listener)Timerを作成し、初期遅延とイベント間遅延をdelayミリ秒に初期化します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 voidaddActionListener(ActionListener listener)Timerにアクション・リスナーを追加します。protected voidfireActionPerformed(ActionEvent e)このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。StringgetActionCommand()このタイマーによってトリガーされたActionEvent内のアクション・コマンドとして配信される文字列を返します。ActionListener[]getActionListeners()このタイマーに登録されたすべてのアクション・リスナーの配列を返します。intgetDelay()次のアクション・イベントがトリガーされるまでの遅延時間(ミリ秒単位)を返します。intgetInitialDelay()Timerの初期遅延を返します。<T extends EventListener>
 T[]getListeners(Class<T> listenerType)このTimerにFooListenerとして現在登録されているすべてのオブジェクトの配列を返します。static booleangetLogTimers()ロギングが有効な場合にtrueを返します。booleanisCoalesce()Timerが保留中の複数のアクション・イベントを合体させる場合はtrueを返します。booleanisRepeats()Timerがアクション・イベントをリスナーに複数回送信する場合は、デフォルトのtrueを返します。booleanisRunning()Timerが実行中の場合は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を停止し、リスナーへのアクション・イベントの送信を停止します。
- 
フィールド詳細- 
listenerListprotected EventListenerList listenerList登録済みリスナーのコレクションです。
 
- 
- 
コンストラクタの詳細- 
Timerpublic Timer(int delay, ActionListener listener)Timerを作成し、初期遅延とイベント間遅延をdelayミリ秒に初期化します。delayが0以下の場合、タイマーは起動と同時にイベントをトリガーします。listenerがnull以外の場合は、タイマーのアクション・リスナーとして登録されます。- パラメータ:
- delay- 初期遅延とイベント間遅延を表す値(ミリ秒)
- listener- 初期のリスナー。- nullの場合もあり
- 関連項目:
- addActionListener(java.awt.event.ActionListener),- setInitialDelay(int),- setRepeats(boolean)
 
 
- 
- 
メソッドの詳細- 
addActionListenerpublic void addActionListener(ActionListener listener)Timerにアクション・リスナーを追加します。- パラメータ:
- listener- 追加するリスナー
- 関連項目:
- Timer(int, java.awt.event.ActionListener)
 
- 
removeActionListenerpublic void removeActionListener(ActionListener listener)指定されたアクション・リスナーをTimerから削除します。- パラメータ:
- listener- 削除するリスナー
 
- 
getActionListenerspublic ActionListener[] getActionListeners()このタイマーに登録されたすべてのアクション・リスナーの配列を返します。- 戻り値:
- タイマーのすべてのActionListener、現在登録されているリスナーがない場合は空の配列
- 導入されたバージョン:
- 1.4
- 関連項目:
- addActionListener(java.awt.event.ActionListener),- removeActionListener(java.awt.event.ActionListener)
 
- 
fireActionPerformedprotected void fireActionPerformed(ActionEvent e)このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。- パラメータ:
- e- トリガーするアクション・イベント
- 関連項目:
- EventListenerList
 
- 
getListenerspublic <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
- 関連項目:
- getActionListeners(),- addActionListener(java.awt.event.ActionListener),- removeActionListener(java.awt.event.ActionListener)
 
- 
setLogTimerspublic static void setLogTimers(boolean flag)タイマーのログを有効または無効にします。 有効にすると、タイマーが切れたときにSystem.outにメッセージが送られます。- パラメータ:
- flag- ログを有効にする場合は- true
- 関連項目:
- getLogTimers()
 
- 
getLogTimerspublic static boolean getLogTimers()ロギングが有効な場合にtrueを返します。- 戻り値:
- ロギングが有効な場合はtrue、そうでない場合はfalse
- 関連項目:
- setLogTimers(boolean)
 
- 
setDelaypublic void setDelay(int delay)連続するアクション・イベントのイベント間のTimerの遅延時間をミリ秒単位で設定します。 これは初期遅延のプロパティには影響を及ぼしません。初期遅延のプロパティはsetInitialDelayメソッドで設定可能です。- パラメータ:
- delay- 遅延時間(ミリ秒単位)
- 関連項目:
- setInitialDelay(int)
 
- 
getDelaypublic int getDelay()次のアクション・イベントがトリガーされるまでの遅延時間(ミリ秒単位)を返します。- 戻り値:
- アクション・イベントの発生間隔(ミリ秒単位)
- 関連項目:
- setDelay(int),- getInitialDelay()
 
- 
setInitialDelaypublic void setInitialDelay(int initialDelay)Timerの初期遅延をミリ秒単位で設定します。初期遅延とは、タイマーが起動したあと、最初のイベントをトリガーするまでの待ち時間のことです。 構築時にはイベント間遅延と同じ値が設定されていますが、その後は別々に変更可能です。イベント間遅延が変更されても、初期遅延に影響はありません。- パラメータ:
- initialDelay- 初期遅延(ミリ秒単位)
- 関連項目:
- setDelay(int)
 
- 
getInitialDelaypublic int getInitialDelay()Timerの初期遅延を返します。- 戻り値:
- Timerの初期遅延(ミリ秒単位)
- 関連項目:
- setInitialDelay(int),- setDelay(int)
 
- 
setRepeatspublic void setRepeats(boolean flag)flagがfalseの場合、アクション・イベントを1つだけリスナーへ送信するようにTimerに命令します。- パラメータ:
- flag- 最初のアクション・イベントの送信後、タイマーを停止する場合は- falseを指定する
 
- 
isRepeatspublic boolean isRepeats()Timerがアクション・イベントをリスナーに複数回送信する場合は、デフォルトのtrueを返します。- 戻り値:
- Timerがアクション・イベントをそのリスナーに複数回送信する場合はtrue
- 関連項目:
- setRepeats(boolean)
 
- 
setCoalescepublic void setCoalesce(boolean flag)Timerが保留中の複数のActionEventトリガーを合体させるかどうかを設定します。 ビジー・アプリケーションはTimerのイベント生成に追いつけないことがあるため、結果として複数のアクション・イベントがキューに入ります。 処理が行われると、アプリケーションはこうしたイベントを次々と送るので、Timerのリスナーは遅延なく一連のイベントを受け取ります。 保留中の複数イベントを1つのイベントに合体すればこの状況を避けられます。Timerは、そうしたイベントをデフォルトで1つに合体します。- パラメータ:
- flag- 合体をオフにする場合は- false
 
- 
isCoalescepublic boolean isCoalesce()Timerが保留中の複数のアクション・イベントを合体させる場合はtrueを返します。- 戻り値:
- Timerが複数の保留中のアクション・イベントを結合する場合はtrue
- 関連項目:
- setCoalesce(boolean)
 
- 
setActionCommandpublic void setActionCommand(String command)このタイマーによってトリガーされたActionEvent内のアクション・コマンドとして配信される文字列を設定します。nullも設定可能です。- パラメータ:
- command- アクション・コマンド
- 導入されたバージョン:
- 1.6
 
- 
getActionCommandpublic String getActionCommand()このタイマーによってトリガーされたActionEvent内のアクション・コマンドとして配信される文字列を返します。 デフォルトのnullも設定できます。- 戻り値:
- イベントのトリガーに使用するアクション・コマンド
- 導入されたバージョン:
- 1.6
 
- 
startpublic void start()Timerを起動し、リスナーへのアクション・イベントの送信を開始します。- 関連項目:
- stop()
 
- 
isRunningpublic boolean isRunning()Timerが実行中の場合はtrueを返します。- 戻り値:
- Timerが実行中の場合はtrue、そうでない場合はfalse
- 関連項目:
- start()
 
- 
stoppublic void stop()Timerを停止し、リスナーへのアクション・イベントの送信を停止します。- 関連項目:
- start()
 
- 
restartpublic void restart()Timerを再起動します。このとき、イベントのトリガーが保留中の場合は取り消し、初期遅延を使用してイベントをトリガーします。
 
-