public interface Action extends ActionListener
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
をインストールします。
次の表では、Actions
をサポートする Swing
コンポーネントで使用されるプロパティーについて説明します。表中のボタンは AbstractButton
サブクラスを表しています。これには、JButton
だけでなく、JMenuItem
などのクラスも含まれています。特に記述がないかぎり、Action
内にプロパティー値 null
がある場合 (または Action
が null
である場合)、ボタンの対応するプロパティーが null
に設定されます。
コンポーネントのプロパティー | コンポーネント | アクションキー | 注記 |
---|---|---|---|
enabled
| すべて | isEnabled メソッド
| |
toolTipText
| すべて | SHORT_DESCRIPTION
| |
actionCommand
| すべて | ACTION_COMMAND_KEY
| |
mnemonic
| すべてのボタン | MNEMONIC_KEY
| null 値または Action は、ボタンの mnemonic プロパティーを '\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
| このプロパティーに従うコンポーネントは、値が null 以外 である場合、この値だけを使用します。たとえば、JToggleButton の SELECTED_KEY の値が null である Action を設定した場合、JToggleButton は選択状態を決して更新しません。同様に、Action の SELECTED_KEY が null 以外 の値の場合、JToggleButton の選択状態が変化するたびに、値は Action に戻ります。このプロパティーに従うコンポーネントは、選択状態をこのプロパティーの状態と同期化します。同じ Action を複数のコンポーネントで使用する場合、すべてのコンポーネントの選択状態がこのプロパティーの状態と同期します。ButtonGroup 内の JToggleButton のように、相互に排他的な関係にあるボタンは、そのうちのどれか 1 つだけが選択されます。このため、SELECTED_KEY プロパティーの値を定義する 1 つの同じ 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)
関連付けられているキーを使ってオブジェクトのプロパティーを 1 つ返します。
|
boolean |
isEnabled()
Action の有効状態を返します。 |
void |
putValue(String key, Object value)
関連付けられているキーを使って、オブジェクトのプロパティーを 1 つ設定します。
|
void |
removePropertyChangeListener(PropertyChangeListener listener)
PropertyChange リスナーを削除します。 |
void |
setEnabled(boolean b)
Action の有効状態を設定します。 |
actionPerformed
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」に設定します。また、myAction.putValue(Action.MNEMONIC_KEY, KeyEvent.getExtendedKeyCodeForChar('?'))
は、myAction
のニーモニックをキリル文字「Ef」に設定します。static final String SELECTED_KEY
Boolean
の格納に使用されるキーです。通常、意味のある選択状態のコンポーネントでのみ使用されます。たとえば、JRadioButton
と JCheckBox
はこれを使用しますが、JMenu
のインスタンスは使用しません。
このプロパティーは、コンポーネントによって読み取りと設定の両方が行われる点で、ほかのプロパティーとは異なっています。たとえば、Action
が JCheckBox
に接続されている場合、JCheckBox
の選択状態は Action
の選択状態から設定されます。ユーザーが JCheckBox
をクリックすると、JCheckBox
と Action
の両方の選択状態が更新されます。
注: 既存の Actions
との競合を防ぐため、このフィールドの値の前には「Swing」という接頭辞が付きます。
static final String DISPLAYED_MNEMONIC_INDEX_KEY
NAME
プロパティーで識別される) に対応する Integer
の格納に使用されるキーです。このプロパティーの値がテキストの長さ以上の場合は、-1 として処理されます。
注: 既存の Actions
との競合を防ぐため、このフィールドの値の前には「Swing」という接頭辞が付きます。
AbstractButton.setDisplayedMnemonicIndex(int)
, 定数フィールド値static final String LARGE_ICON_KEY
Icon
を格納するために使用されるキーです。通常、JButton
、JToggleButton
などのボタンで使用されます。
メニューとボタンで同じ Action
を使用する場合は、通常、SMALL_ICON
と LARGE_ICON_KEY
を両方とも指定します。メニューは SMALL_ICON
、ボタンは LARGE_ICON_KEY
を使用します。
注: 既存の Actions
との競合を防ぐため、このフィールドの値の前には「Swing」という接頭辞が付きます。
void putValue(String key, Object value)
PropertyChangeEvent
がリスナーに送信されます。key
- キーが格納されている String
value
- 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)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.