|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.swing.Timer
public class 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 Timers」を参照してください。この Timer
クラスと java.util.Timer
の選択基準や使用例については、「The Swing Connection」の「Using Timers in Swing Applications」を参照してください。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。JDK バージョン 1.4 以降、すべての JavaBeans™ の長期間の運用サポートは、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 の初期遅延を返します。 |
|
|
getListeners(Class<T> 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
- トリガするアクションイベントEventListenerList
public <T extends EventListener> T[] getListeners(Class<T> 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
- ログを有効にする場合は true
getLogTimers()
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
- 最初のアクションイベントの送信後タイマーを停止させる場合は false
public boolean isRepeats()
Timer
がアクションイベントをリスナーへ複数回送信する場合、デフォルトの true
を返します。
setRepeats(boolean)
public void setCoalesce(boolean flag)
Timer
が保留中の複数の ActionEvent
トリガを合体させるかどうかを設定します。ビジーアプリケーションは Timer
のイベント生成に追いつけないことがあるため、結果として複数のアクションイベントがキューに入ります。処理が行われると、アプリケーションはこうしたイベントを次々と送るので、Timer
のリスナーは遅延なく一連のイベントを受け取ります。保留中の複数イベントを 1 つのイベントに合体すればこの状況を避けられます。Timer
は、そうしたイベントをデフォルトで 1 つに合体します。
flag
- 合体をオフにする場合は false
public 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 Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。