|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
public interface Action
Action インタフェースは、同じ機能が複数のコントロールによってアクセスされる場合に、ActionListener インタフェースに対する便利な拡張機能を提供します。
ActionListener インタフェースで定義される actionPerformed メソッドに加えてこのインタフェースを使用すると、アプリケーションでは次のことを 1 箇所で定義できます。
このインタフェースは既存のクラスに追加したり、アダプタの生成 (通常は AbstractAction のサブクラス化) に使用したりすることができます。そして、Action オブジェクトが複数の Action 処理コンテナに追加され、Action の機能を持ったコンポーネントに接続されます。これによって、Action オブジェクトの setEnabled メソッドを呼び出して、GUI コントロールを一度に起動または終了できます。
Action の実装は、記憶領域の点で通常の ActionListener より負荷が大きくなることが多いので、機能の中央制御やプロパティー変更の通知といった利点を提供できません。このため、これらの機能を利用する必要がある場合にのみ Action を使用するようにして、それ以外では単純な ActionListener を使用するようにしてください。
Action をサポートする Swing コンポーネント
多くの Swing コンポーネントは、Action プロパティーを持っています。コンポーネントに Action が設定されると、次のことが行われます。
Action が ActionListener としてコンポーネントに追加されます。
Action に一致するように構成します。
Action のプロパティーの変更に応じてプロパティーを変更できるように、Action に PropertyChangeListener をインストールします。
次の表では、Action をサポートする Swing コンポーネントで使用されるプロパティーについて説明します。表中の button は AbstractButton サブクラスを表しています。これには、JButton だけでなく、JMenuItem などのクラスも含まれています。特に記述がないかぎり、Action 内にプロパティー値 null がある場合 (または Action が null である場合)、ボタンの対応するプロパティーが null に設定されます。
| コンポーネントのプロパティー | コンポーネント | アクションキー | 説明 |
|---|---|---|---|
enabled
| すべて | isEnabled メソッド
| |
toolTipText
| すべて | SHORT_DESCRIPTION
| |
actionCommand
| すべて | ACTION_COMMAND_KEY
| |
0 以下
| すべてのボタン | MNEMONIC_KEY
| null 値。または、ボタンの mnemonic プロパティー内の Action が「\0」に設定されます。
|
text
| すべてのボタン | NAME
| ボタンのテキストに Action のテキストを反映させない場合は、hideActionText プロパティーを true に設定します。hideActionText が true の場合、Action を設定すると、ボタンのテキストが null に変わり、NAME への変更が無視されます。hideActionText は、通常 Icon だけを表示するので、ツールバーボタンに適しています。JToolBar.add(Action) は、Action の LARGE_ICON_KEY または SMALL_ICON の値が null でない場合、プロパティーを true に設定します。
|
displayedMnemonicIndex
| すべてのボタン | DISPLAYED_MNEMONIC_INDEX_KEY
| DISPLAYED_MNEMONIC_INDEX_KEY の値がテキストの境界を越える場合は、無視されます。setAction が呼び出されたときに、Action の値が null の場合は、ニーモニックのインデックスの表示は更新されません。そのあとで DISPLAYED_MNEMONIC_INDEX_KEY に変更を加える際には、null は -1 として処理されます。
|
icon
| JCheckBox、JToggleButton、および JRadioButton を除くすべてのボタン。
| LARGE_ICON_KEY または SMALL_ICON
| JMenuItem サブクラスは、SMALL_ICON だけを使用します。その他のすべてのボタンは、LARGE_ICON_KEY を使用します。値が null の場合は、SMALL_ICON を使用します。
|
accelerator
| すべての JMenuItem サブクラス (JMenu を除く)。
| ACCELERATOR_KEY
| |
selected
| JToggleButton、JCheckBox、JRadioButton、JCheckBoxMenuItem、および JRadioButtonMenuItem
| SELECTED_KEY
| このプロパティーに従うコンポーネントは、値が non-null である場合、この値だけを使用します。たとえば、JToggleButton の SELECTED_KEY の値が null である Action を設定した場合、JToggleButton は選択された状態を決して更新しません。同様に、Action の SELECTED_KEY が non-null 値の場合、JToggleButton の選択された状態が変化するたびに、値は Action に戻ります。このプロパティーに従うコンポーネントは、選択された状態をこのプロパティーの状態と同期化します。同じ Action を複数のコンポーネントで使用する場合、すべてのコンポーネントの選択された状態がこのプロパティーの状態と同期します。ButtonGroup 内の JToggleButton のように、相互に排他的な関係にあるボタンは、そのうちのどれか 1 つだけが選択されます。このため、SELECTED_KEY プロパティーの値を定義する Action を、相互に排他的な関係にある複数のボタンで使用しないでください。
|
JPopupMenu、JToolBar、および JMenu はいずれも、コンポーネントの作成と対応するコンポーネント上での Action の設定に便利なメソッドを提供します。詳細は、各クラスの説明を参照してください。
Action は、PropertyChangeListener を使って、Action が変更されたことをリスナーに通知します。Bean 仕様には、プロパティー名 null を使って複数の値が変更されたことを示すことができると記載されています。デフォルトでは、Action を実行する Swing コンポーネントは、このような変更を処理しません。Swing が Bean 仕様に従って null を処理するようにするには、システムプロパティー swing.actions.reconfigureOnNull の String 値を true に設定します。
AbstractAction| フィールドの概要 | |
|---|---|
static String |
ACCELERATOR_KEY
アクションのアクセラレータとして使用する KeyStroke の格納に使用されるキーです。 |
static String |
ACTION_COMMAND_KEY
JComponent に関連する Keymap に常駐している結果として Action が通知されるとき作成される ActionEvent のコマンド String の判定に使用されるキーです。 |
static String |
DEFAULT
現在使用されていません。 |
static String |
DISPLAYED_MNEMONIC_INDEX_KEY
ニーモニックの装飾が描画されるテキスト内のインデックス ( NAME プロパティーで識別される) に対応する Integer の格納に使用されるキーです。 |
static String |
LARGE_ICON_KEY
Icon を格納するために使用されるキーです。 |
static String |
LONG_DESCRIPTION
アクションに関する詳細な String の説明を格納するために使用されるキーです。 |
static String |
MNEMONIC_KEY
KeyEvent キーコードの 1 つに対応する Integer の格納に使用されるキーです。 |
static String |
NAME
アクションの名前を表す String の格納に使用するキーです。 |
static String |
SELECTED_KEY
選択された状態に対応する Boolean の格納に使用されるキーです。 |
static String |
SHORT_DESCRIPTION
アクションに関する短い String の説明を格納するために使用されるキーです。 |
static String |
SMALL_ICON
ImageIcon のような小さい Icon を格納するために使用されるキーです。 |
| メソッドの概要 | |
|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener)
PropertyChange リスナーを追加します。 |
Object |
getValue(String key)
関連付けられているキーを使ってオブジェクトのプロパティーを一つ返します。 |
boolean |
isEnabled()
Action の有効状態を返します。 |
void |
putValue(String key,
Object value)
関連付けられているキーを使って、オブジェクトのプロパティーを一つ設定します。 |
void |
removePropertyChangeListener(PropertyChangeListener listener)
PropertyChange リスナーを削除します。 |
void |
setEnabled(boolean b)
Action の有効状態を設定します。 |
| インタフェース java.awt.event.ActionListener から継承されたメソッド |
|---|
actionPerformed |
| フィールドの詳細 |
|---|
static final String DEFAULT
static final String NAME
String の格納に使用するキーです。 メニューまたはボタンで使われます。
static final String SHORT_DESCRIPTION
String の説明を格納するために使用されるキーです。ツールヒントのテキストに使用されます。
static final String LONG_DESCRIPTION
String の説明を格納するために使用されるキーです。コンテキスト依存ヘルプで使用することができます。
static final String SMALL_ICON
ImageIcon のような小さい Icon を格納するために使用されるキーです。通常は JMenuItem などのメニューで使用されます。
メニューとボタンで同じ Action を使用する場合は、通常、SMALL_ICON と LARGE_ICON_KEY を両方とも指定します。メニューは SMALL_ICON、ボタンは LARGE_ICON_KEY を使用します。
static final String ACTION_COMMAND_KEY
JComponent に関連する Keymap に常駐している結果として Action が通知されるとき作成される ActionEvent のコマンド String の判定に使用されるキーです。
static final String ACCELERATOR_KEY
KeyStroke の格納に使用されるキーです。
static final String MNEMONIC_KEY
KeyEvent キーコードの 1 つに対応する Integer の格納に使用されるキーです。値は通常、ニーモニックを指定するために使用されます。例を示します。myAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_A) は、myAction のニーモニックを「a」に設定します。
static final String SELECTED_KEY
Boolean の格納に使用されるキーです。通常、意味のある選択状態のコンポーネントでのみ使用されます。たとえば、JRadioButton と JCheckBox はこれを使用しますが、JMenu のインスタンスは使用しません。
このプロパティーは、コンポーネントによって読み取りと設定の両方が行われる点で、ほかのプロパティーとは異なっています。たとえば、Action が JCheckBox に接続されている場合、JCheckBox の選択状態は Action の選択状態から設定されます。ユーザーが JCheckBox をクリックすると、JCheckBox および Action の両方の選択状態が更新されます。
注:既存の Action との衝突を防ぐため、このフィールドの値の前には「Swing」という接頭辞が付きます。
static final String DISPLAYED_MNEMONIC_INDEX_KEY
NAME プロパティーで識別される) に対応する Integer の格納に使用されるキーです。このプロパティーの値がテキストの長さ以上の場合は、-1 として処理されます。
注:既存の Action との衝突を防ぐため、このフィールドの値の前には「Swing」という接頭辞が付きます。
AbstractButton.setDisplayedMnemonicIndex(int),
定数フィールド値static final String LARGE_ICON_KEY
Icon を格納するために使用されるキーです。通常、JButton、JToggleButton などのボタンで使用されます。
メニューとボタンで同じ Action を使用する場合は、通常、SMALL_ICON と LARGE_ICON_KEY を両方とも指定します。メニューは SMALL_ICON、ボタンは LARGE_ICON_KEY を使用します。
注:既存の Action との衝突を防ぐため、このフィールドの値の前には「Swing」という接頭辞が付きます。
| メソッドの詳細 |
|---|
Object getValue(String key)
putValue(java.lang.String, java.lang.Object)
void putValue(String key,
Object value)
PropertyChangeEvent がリスナーに送信されます。
key - キーが格納されている Stringvalue - Object 値void setEnabled(boolean b)
Action の有効状態を設定します。有効な場合は、このオブジェクトに関連した任意のコンポーネントはアクティブであり、オブジェクトの actionPerformed メソッドをトリガーできます。値が変更されると、PropertyChangeEvent がリスナーに送信されます。
b - この Action を有効にする場合は true、無効にする場合は falseboolean isEnabled()
Action の有効状態を返します。有効な場合は、このオブジェクトに関連した任意のコンポーネントはアクティブであり、オブジェクトの actionPerformed メソッドをトリガーできます。
Action が有効な場合は truevoid addPropertyChangeListener(PropertyChangeListener listener)
PropertyChange リスナーを追加します。コンテナ、および接続されたコンポーネントは、これらのメソッドを使用して Action オブジェクトの通知対象として登録します。Action オブジェクトが有効になった場合、またはその他のプロパティーが変化した場合、登録されたリスナーに変更が通知されます。
listener - PropertyChangeListener オブジェクトvoid removePropertyChangeListener(PropertyChangeListener listener)
PropertyChange リスナーを削除します。
listener - PropertyChangeListener オブジェクトaddPropertyChangeListener(java.beans.PropertyChangeListener)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。