|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object | +--javax.swing.Timer
1 つ以上のアクションイベントを、指定された遅延時間の経過後にトリガします。たとえば、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();
各 Timer は、1 つ以上のアクションリスナーと、delay (アクションイベント間の時間) を持ちます。ミリ秒単位で指定された delay の時間が経過すると、Timer はリスナーに対してアクションイベントをトリガします。デフォルトでは、このサイクルは stop メソッドが呼び出されるまで繰り返されます。タイマーのトリガを 1 回だけにするには、タイマーで setRepeats(false) を呼び出します。最初のアクションイベントがトリガされるまでの遅延時間をアクションイベント間の遅延時間とは異なる時間に設定するには、setInitialDelay メソッドを使用します。
すべての Timer は、実行する最初の Timer オブジェクトが作成した単一の共有スレッドを使用して待機処理を実行しますが、Timer のアクションイベントハンドラは、それとは別のイベントディスパッチスレッドで実行されます。そのため、Timer のアクションイベントハンドラは Swing コンポーネントのオペレーションを安全に実行できます。ただし、一方で Timer のアクションイベントハンドラは、GUI の応答を維持できるよう、迅速に動作する必要があります。
v 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 Swing Timers」を参照してください。この Timer クラスと java.util.Timer の選択基準や使用例については、「The Swing Connection」の「Using Timers in Swing Applications」を参照してください。
警告:
このクラスの直列化されたオブジェクトには、Swing の今後のリリースと互換性がありません。現在の直列化サポートは、短期記憶と、同じバージョンの Swing を実行しているアプリケーション間 RMI に有効です。バージョン 1.4 以降、すべての JavaBeansTM の長期記憶サポートが java.beans パッケージに追加されています。XMLEncoderを参照してください。
java.util.Timer| フィールドの概要 | |
protected EventListenerList |
listenerList
|
| コンストラクタの概要 | |
Timer(int delay,
ActionListener listener)
ミリ秒単位の delay ごとにリスナーへ通知する Timer を生成します。 |
|
| メソッドの概要 | |
void |
addActionListener(ActionListener listener)
アクションリスナーを Timer に追加します。 |
protected void |
fireActionPerformed(ActionEvent e)
通知の配信対象を、指定されたイベントタイプで登録したすべてのリスナーに通知します。 |
ActionListener[] |
getActionListeners()
タイマーに登録されたすべてのアクションリスナーの配列を返します。 |
int |
getDelay()
アクションイベントのトリガ間の遅延時間 (ミリ秒単位) を返します。 |
int |
getInitialDelay()
Timer の初期遅延を返します。 |
EventListener[] |
getListeners(Class listenerType)
FooListener として現在 Timer に登録されているすべてのオブジェクトの配列を返します。 |
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 |
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 を停止し、リスナーへのアクションイベントの送信を停止します。 |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
protected EventListenerList listenerList
| コンストラクタの詳細 |
public Timer(int delay,
ActionListener listener)
delay ごとにリスナーへ通知する Timer を生成します。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 EventListener[] getListeners(Class listenerType)
FooListener として現在 Timer に登録されているすべてのオブジェクトの配列を返します。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 遅延時間をミリ秒単位で設定します。
delay - 遅延時間 (ミリ秒単位)setInitialDelay(int)public int getDelay()
setDelay(int),
getInitialDelay()public void setInitialDelay(int initialDelay)
Timer の初期遅延を設定します。デフォルトでは、イベント間の遅延時間と同じ値です。この値は、最初のアクションイベントだけに使用されます。2 番目以降のアクションイベントには delay プロパティが使用されます。
initialDelay - start メソッドの呼び出しから、タイマーがトリガする最初のアクションイベントまでの遅延時間 (ミリ秒単位)setDelay(int)public int getInitialDelay()
Timer の初期遅延を返します。
setInitialDelay(int),
setDelay(int)public void setRepeats(boolean flag)
flag が false の場合、アクションイベントを 1 つだけリスナーへ送信するよう Timer に命令します。
flag - 最初のアクションイベントの送信後タイマーを停止させる場合は falsepublic 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 start()
Timer を起動し、リスナーへのアクションイベントの送信を開始します。
stop()public boolean isRunning()
Timer が実行中であれば、true を返します。
start()public void stop()
Timer を停止し、リスナーへのアクションイベントの送信を停止します。
start()public void restart()
Timer を再起動します。保留中のトリガがあれば取り消し、初期遅延を使用してトリガします。
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.