インタフェースAction

すべてのスーパー・インタフェース:
ActionListener, EventListener
既知のすべての実装クラス:
AbstractAction, BasicDesktopPaneUI.CloseAction, BasicDesktopPaneUI.MaximizeAction, BasicDesktopPaneUI.MinimizeAction, BasicDesktopPaneUI.NavigateAction, BasicDesktopPaneUI.OpenAction, BasicFileChooserUI.ApproveSelectionAction, BasicFileChooserUI.CancelSelectionAction, BasicFileChooserUI.ChangeToParentDirectoryAction, BasicFileChooserUI.GoHomeAction, BasicFileChooserUI.NewFolderAction, BasicFileChooserUI.UpdateAction, BasicInternalFrameTitlePane.CloseAction, BasicInternalFrameTitlePane.IconifyAction, BasicInternalFrameTitlePane.MaximizeAction, BasicInternalFrameTitlePane.MoveAction, BasicInternalFrameTitlePane.RestoreAction, BasicInternalFrameTitlePane.SizeAction, BasicSliderUI.ActionScroller, BasicTreeUI.TreeCancelEditingAction, BasicTreeUI.TreeHomeAction, BasicTreeUI.TreeIncrementAction, BasicTreeUI.TreePageAction, BasicTreeUI.TreeToggleAction, BasicTreeUI.TreeTraverseAction, DefaultEditorKit.BeepAction, DefaultEditorKit.CopyAction, DefaultEditorKit.CutAction, DefaultEditorKit.DefaultKeyTypedAction, DefaultEditorKit.InsertBreakAction, DefaultEditorKit.InsertContentAction, DefaultEditorKit.InsertTabAction, DefaultEditorKit.PasteAction, HTMLEditorKit.HTMLTextAction, HTMLEditorKit.InsertHTMLTextAction, MetalFileChooserUI.DirectoryComboBoxAction, StyledEditorKit.AlignmentAction, StyledEditorKit.BoldAction, StyledEditorKit.FontFamilyAction, StyledEditorKit.FontSizeAction, StyledEditorKit.ForegroundAction, StyledEditorKit.ItalicAction, StyledEditorKit.StyledTextAction, StyledEditorKit.UnderlineAction, TextAction

public interface Action extends ActionListener
Actionインタフェースは、同じ機能が複数のコントロールによってアクセスされる場合に、ActionListenerインタフェースに対する便利な拡張機能を提供します。

ActionListenerインタフェースで定義されるactionPerformedメソッドに加えてこのインタフェースを使用すると、アプリケーションでは次のものを1か所で定義できます。

  • 機能を説明する、1つまたは複数のテキスト文字列。 この文字列は、ボタンの上にマウスを置いたときのテキスト表示や、メニュー項目のテキストの設定に使用できます。
  • 機能を示す、1つまたは複数のアイコン。 このアイコンは、メニュー・コントロール内のイメージや、より高度なユーザー・インタフェースで使う複合エントリに使用できます。
  • 機能の有効/無効の状態。 メニュー項目とツールバー・ボタンを個別に無効にする代わりに、アプリケーションは、このインタフェースを実装する機能を無効にできます。 状態変更のリスナーとして登録されているすべてのコンポーネントは、該当する項目のイベント生成を無効にすることを認識し、それに合わせて表示を変更します。

このインタフェースは既存のクラスに追加したり、アダプタの生成(通常はAbstractActionのサブクラス化)に使用したりすることができます。 そして、Actionオブジェクトが複数のAction対応コンテナに追加され、Action対応コンポーネントに接続されます。 これによって、ActionオブジェクトのsetEnabledメソッドを呼び出して、GUIコントロールをすべて一度に起動または終了できます。

Actionの実装は、機能の中央制御やプロパティ変更の通知といった利点を提供しない通常のActionListenerより、記憶領域の点で負荷が大きくなる傾向があります。 このため、それらの機能を利用する必要がある場合にのみActionを使用するようにして、それ以外では単純なActionListenerを使用するようにしてください。

ActionをサポートするSwingコンポーネント

多くのSwingコンポーネントは、Actionプロパティを持っています。 コンポーネントにActionが設定されると、次のことが行われます。

  • ActionActionListenerとしてコンポーネントに追加されます。
  • コンポーネントは、一部のプロパティをActionに一致するように構成します。
  • コンポーネントは、Actionのプロパティの変更に応じてプロパティを変更できるように、ActionPropertyChangeListenerをインストールします。

ActionsをサポートするSwingコンポーネントによって使用されるプロパティを次の表に示します。 表のボタンはいずれかのAbstractButtonサブクラスを表し、JButtonだけでなく、JMenuItemなどのクラスも含みます。 他に記述がないかぎり、Actionnullプロパティ値(またはnullであるAction)により、ボタンの対応するプロパティにnullが設定されます。

サポートされるActionプロパティ
コンポーネント・プロパティ コンポーネント アクション・キー ノート
enabled すべて isEnabledメソッド  
toolTipText すべて SHORT_DESCRIPTION  
actionCommand すべて ACTION_COMMAND_KEY  
mnemonic すべてのボタン MNEMONIC_KEY null値またはActionは、ボタンのmnemonicプロパティを'\0'に設定することになります。
text すべてのボタン NAME ボタンのテキストにActionのテキストを反映させたくない場合は、プロパティhideActionTexttrueに設定します。 hideActionTexttrueの場合、Actionを設定すると、ボタンのテキストがnullに変更され、NAMEの変更はすべて無視されます。hideActionTextは一般にIconのみを表示するツール・バー・ボタンに便利です。 LARGE_ICON_KEYまたはSMALL_ICONActionnull以外の値を持つ場合、JToolBar.add(Action)はプロパティをtrueに設定します。
displayedMnemonicIndex すべてのボタン DISPLAYED_MNEMONIC_INDEX_KEY DISPLAYED_MNEMONIC_INDEX_KEYの値がテキストの境界を越える場合は、無視されます。 setActionが呼び出されたときに、Actionの値がnullの場合は、ニーモニックのインデックスの表示は更新されません。 そのあとでDISPLAYED_MNEMONIC_INDEX_KEYに変更を加える際には、nullは -1として処理されます。
icon JCheckBoxJToggleButton、およびJRadioButtonを除くすべてのボタン。 LARGE_ICON_KEYまたはSMALL_ICON JMenuItemサブクラスはSMALL_ICONのみを使用します。 他のすべてのボタンはLARGE_ICON_KEYを使用します。値がnullの場合、それらはSMALL_ICONを使用します。
accelerator すべてのJMenuItemサブクラス(JMenuを除く)。 ACCELERATOR_KEY  
selected JToggleButtonJCheckBoxJRadioButtonJCheckBoxMenuItem、およびJRadioButtonMenuItem SELECTED_KEY このプロパティに従うコンポーネントは、値がnull以外である場合、この値だけを使用します。 たとえば、JToggleButtonSELECTED_KEYの値がnullであるActionを設定した場合、JToggleButtonは選択状態を決して更新しません。 同様に、ActionSELECTED_KEYnull以外の値の場合、JToggleButtonの選択状態が変化するたびに、値はActionに戻ります。
このプロパティに従うコンポーネントは、選択状態をこのプロパティの状態と同期化します。
同じActionを複数のコンポーネントで使用する場合、すべてのコンポーネントの選択状態がこのプロパティの状態と同期します。 ButtonGroup内のJToggleButtonのように、相互に排他的な関係にあるボタンは、そのうちのどれか1つだけが選択されます。 このため、SELECTED_KEYプロパティの値を定義する1つの同じActionを、相互に排他的な関係にある複数のボタンで使用しないでください。

JPopupMenuJToolBar、およびJMenuはいずれも、コンポーネントの作成と、対応するコンポーネント上でのActionの設定に便利なメソッドを提供します。 詳細は、各クラスの説明を参照してください。

Actionは、PropertyChangeListenerを使って、Actionが変更されたことをリスナーに通知します。 Bean仕様には、プロパティ名nullを使って複数の値が変更されたことを示すことができると記載されています。 デフォルトでは、Actionを実行するSwingコンポーネントは、このような変更を処理しません。 SwingがBean仕様に従ってnullを処理するようにするには、システム・プロパティswing.actions.reconfigureOnNullStringtrueに設定します。

導入されたバージョン:
1.2
関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final String
    アクションのアクセラレータとして使用するKeyStrokeの格納に使用されるキーです。
    static final String
    JComponentに関連するKeymapに常駐している結果としてActionが通知されるとき作成される、ActionEventのコマンドStringの判定に使用されるキーです。
    static final String
    現在使用されていません。
    static final String
    ニーモニックの装飾が描画されるテキスト内のインデックス(NAMEプロパティで識別される)に対応するIntegerの格納に使用されるキーです。
    static final String
    Iconを格納するために使用されるキーです。
    static final String
    アクションに関する詳細なStringの説明を格納するために使用されるキーです。コンテキスト依存ヘルプで使用できます。
    static final String
    KeyEventキー・コードの1つに対応するIntegerの格納に使用されるキーです。
    static final String
    アクションの名前を表すStringの格納に使用するキーです。メニューまたはボタンで使われます。
    static final String
    選択された状態に対応するBooleanの格納に使用されるキーです。
    static final String
    アクションに関する短いStringの説明を格納するために使用されるキーです。ツールヒントのテキストに使用されます。
    static final String
    ImageIconのような小さいIconを格納するために使用されるキーです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    default boolean
    accept(Object sender)
    指定された送信者オブジェクトに対してアクションを実行するかどうかを決定します。
    void
    PropertyChangeリスナーを追加します。
    関連付けられているキーを使ってオブジェクトのプロパティを1つ返します。
    boolean
    Actionの有効状態を返します。
    void
    putValue(String key, Object value)
    関連付けられているキーを使って、オブジェクトのプロパティを1つ設定します。
    void
    PropertyChangeリスナーを削除します。
    void
    setEnabled(boolean b)
    Actionの有効状態を設定します。

    インタフェースで宣言されたメソッド ActionListener

    actionPerformed
    修飾子と型
    メソッド
    説明
    void
    アクションが発生すると呼び出されます。
  • フィールド詳細

    • DEFAULT

      static final String DEFAULT
      現在使用されていません。
      関連項目:
    • NAME

      static final String NAME
      アクションの名前を表すStringの格納に使用するキーです。メニューまたはボタンで使われます。
      関連項目:
    • SHORT_DESCRIPTION

      static final String SHORT_DESCRIPTION
      アクションに関する短いStringの説明を格納するために使用されるキーです。ツールヒントのテキストに使用されます。
      関連項目:
    • LONG_DESCRIPTION

      static final String LONG_DESCRIPTION
      アクションに関する詳細なStringの説明を格納するために使用されるキーです。コンテキスト依存ヘルプで使用できます。
      関連項目:
    • SMALL_ICON

      static final String SMALL_ICON
      ImageIconのような小さいIconを格納するために使用されるキーです。 通常はJMenuItemなどのメニューで使用されます。

      メニューとボタンで同じActionを使用する場合は、通常、SMALL_ICONLARGE_ICON_KEYを両方とも指定します。 メニューはSMALL_ICON、ボタンはLARGE_ICON_KEYを使用します。

      関連項目:
    • ACTION_COMMAND_KEY

      static final String ACTION_COMMAND_KEY
      JComponentに関連するKeymapに常駐している結果としてActionが通知されるとき作成される、ActionEventのコマンドStringの判定に使用されるキーです。
      関連項目:
    • ACCELERATOR_KEY

      static final String ACCELERATOR_KEY
      アクションのアクセラレータとして使用するKeyStrokeの格納に使用されるキーです。
      導入されたバージョン:
      1.3
      関連項目:
    • MNEMONIC_KEY

      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"に設定します。
      導入されたバージョン:
      1.3
      関連項目:
    • SELECTED_KEY

      static final String SELECTED_KEY
      選択された状態に対応するBooleanの格納に使用されるキーです。 通常、意味のある選択状態のコンポーネントでのみ使用されます。 たとえば、JRadioButtonJCheckBoxはこれを使用しますが、JMenuのインスタンスは使用しません。

      このプロパティは、コンポーネントによって読取りと設定の両方が行われる点で、ほかのプロパティとは異なっています。 たとえば、ActionJCheckBoxに接続されている場合、JCheckBoxの選択状態はActionの選択状態から設定されます。 ユーザーがJCheckBoxをクリックすると、JCheckBox Action両方の選択状態が更新されます。

      ノート: 既存のActionsとの競合を防ぐため、このフィールドの値の前には「Swing」という接頭辞が付きます。

      導入されたバージョン:
      1.6
      関連項目:
    • DISPLAYED_MNEMONIC_INDEX_KEY

      static final String DISPLAYED_MNEMONIC_INDEX_KEY
      ニーモニックの装飾が描画されるテキスト内のインデックス(NAMEプロパティで識別される)に対応するIntegerの格納に使用されるキーです。 このプロパティの値がテキストの長さ以上の場合は、-1として処理されます。

      ノート: 既存のActionsとの競合を防ぐため、このフィールドの値の前には「Swing」という接頭辞が付きます。

      導入されたバージョン:
      1.6
      関連項目:
    • LARGE_ICON_KEY

      static final String LARGE_ICON_KEY
      Iconを格納するために使用されるキーです。 通常、JButtonJToggleButtonなどのボタンで使用されます。

      メニューとボタンで同じActionを使用する場合は、通常、SMALL_ICONLARGE_ICON_KEYを両方とも指定します。 メニューはSMALL_ICON、ボタンはLARGE_ICON_KEYを使用します。

      ノート: 既存のActionsとの競合を防ぐため、このフィールドの値の前には「Swing」という接頭辞が付きます。

      導入されたバージョン:
      1.6
      関連項目:
  • メソッドの詳細

    • getValue

      Object getValue(String key)
      関連付けられているキーを使ってオブジェクトのプロパティを1つ返します。
      パラメータ:
      key - キーが格納されているString
      戻り値:
      Objectの値
      関連項目:
    • putValue

      void putValue(String key, Object value)
      関連付けられているキーを使って、オブジェクトのプロパティを1つ設定します。 値が変更されると、PropertyChangeEventがリスナーに送信されます。
      パラメータ:
      key - キーが格納されているString
      value - Object
    • setEnabled

      void setEnabled(boolean b)
      Actionの有効状態を設定します。 有効な場合は、このオブジェクトに関連した任意のコンポーネントはアクティブであり、このオブジェクトのactionPerformedメソッドをトリガーできます。 値が変更されると、PropertyChangeEventがリスナーに送信されます。
      パラメータ:
      b - このActionを有効にする場合はtrue、無効にする場合はfalse
      関連項目:
    • isEnabled

      boolean isEnabled()
      Actionの有効状態を返します。 有効な場合は、このオブジェクトに関連した任意のコンポーネントはアクティブであり、このオブジェクトのactionPerformedメソッドをトリガーできます。
      戻り値:
      このActionが有効な場合はtrue
      関連項目:
    • accept

      default boolean accept(Object sender)
      指定された送信者オブジェクトに対してアクションを実行するかどうかを決定します。 sendernullです。 アクションが無効になっている場合、メソッドはfalseを返す必要があります。
      パラメータ:
      sender - チェックするオブジェクトはnullにできます
      戻り値:
      trueは、アクションを送信オブジェクトで実行する必要がある場合、アクションが無効になっている場合はfalseである必要があります。
      関連項目:
    • addPropertyChangeListener

      void addPropertyChangeListener(PropertyChangeListener listener)
      PropertyChangeリスナーを追加します。 コンテナ、および接続されたコンポーネントは、これらのメソッドを使用してActionオブジェクトの通知対象として登録します。 有効になった場合、またはその他のプロパティが変化した場合、登録されたリスナーに変更が通知されます。
      パラメータ:
      listener - PropertyChangeListenerオブジェクト
    • removePropertyChangeListener

      void removePropertyChangeListener(PropertyChangeListener listener)
      PropertyChangeリスナーを削除します。
      パラメータ:
      listener - PropertyChangeListenerオブジェクト
      関連項目: