|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.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 - トリガーするアクションイベントEventListenerListpublic <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 - ログを有効にする場合は truegetLogTimers()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 - 合体をオフにする場合は falsepublic 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 も参照してください。