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
プロパティ値(またはnull
であるAction
)により、ボタンの対応するプロパティに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 のみを表示するツール・バー・ボタンに便利です。 LARGE_ICON_KEY またはSMALL_ICON のAction がnull 以外の値を持つ場合、JToolBar.add(Action) はプロパティを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
オブジェクトの通知対象として登録します。 有効になった場合、またはその他のプロパティが変化した場合、登録されたリスナーに変更が通知されます。 listener
- PropertyChangeListener
オブジェクトvoid removePropertyChangeListener(PropertyChangeListener listener)
PropertyChange
リスナーを削除します。listener
- PropertyChangeListener
オブジェクトaddPropertyChangeListener(java.beans.PropertyChangeListener)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。