|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.swing.Timer
public class Timer
指定された時間の経過後に、一つ以上の 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();
Timer
を構築する際は、遅延パラメータと ActionListener
の両方を指定します。遅延パラメータは、初期遅延と、イベントがトリガーされるまでの遅延の両方の設定に使用します。単位はミリ秒です。タイマーは、開始後、登録されたリスナーに対する最初の ActionEvent
がトリガーされるまでの初期遅延を待機します。この最初のイベントの発生後は、タイマーが停止するまで、イベント間遅延が経過するたびにイベントをトリガーする処理を継続します。
構築後、初期遅延とイベント間遅延は別々に変更できます。新たに ActionListener
を追加することもできます。
タイマーを 1 回だけトリガーしたあと停止するには、タイマーで setRepeats(false)
を呼び出します。
すべての Timer
は、実行する最初の Timer
オブジェクトが作成した単一の共有スレッドを使用して待機処理を実行しますが、Timer
のアクションイベントハンドラは、それとは別のイベントディスパッチスレッドで実行されます。そのため、Timer
のアクションイベントハンドラは Swing コンポーネントの操作を安全に実行できます。ただし、一方で Timer
のアクションイベントハンドラは、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 に適しています。JDK Version 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 の初期遅延を返します。 |
|
|
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 の場合、アクションイベントを一つだけリスナーへ送信するように 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)
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
- トリガーするアクションイベントEventListenerList
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));このようなリスナーがない場合は空の配列を返します。
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
の遅延時間をミリ秒単位で設定します。これは初期遅延のプロパティーには影響を及ぼしません。初期遅延は setInitialDelay
メソッドで設定可能です。
delay
- 遅延時間 (ミリ秒単位)setInitialDelay(int)
public int getDelay()
setDelay(int)
,
getInitialDelay()
public void setInitialDelay(int initialDelay)
Timer
の初期遅延をミリ秒単位で設定します。初期遅延とは、タイマーが起動した後、最初のイベントをトリガーするまでの待ち時間のことです。構築時にはイベント間遅延と同じ値が設定されていますが、その後は別々に変更可能です。イベント間遅延が変更されても、初期遅延に影響はありません。
initialDelay
- 初期遅延 (ミリ秒単位)setDelay(int)
public int getInitialDelay()
Timer
の初期遅延を返します。
setInitialDelay(int)
,
setDelay(int)
public void setRepeats(boolean flag)
flag
が false
の場合、アクションイベントを一つだけリスナーへ送信するように 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 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
を再起動します。このとき、イベントのトリガーが保留中の場合は取り消し、初期遅延を使用してイベントをトリガーします。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。