Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing
Interface Action

All Superinterfaces:
  ActionListener, EventListener

All Known Implementing Classes:
  AbstractAction

public interface Action
extends ActionListener

The `Action` interface provides a useful extension to the `ActionListener` interface in cases where the same functionality may be accessed by several controls.

In addition to the `actionPerformed` method defined by the `ActionListener` interface, this interface allows the application to define, in a single place:

- One or more text strings that describe the function. These strings can be used, for example, to display the flyover text for a button or to set the text in a menu item.
- One or more icons that depict the function. These icons can be used for the images in a menu control, or for composite entries in a more sophisticated user interface.
- The enabled/disabled state of the functionality. Instead of having to separately disable the menu item and the toolbar button, the application can disable the function that implements this interface. All components which are registered as listeners for the state change then know to disable event generation for that item and to modify the display accordingly.

Certain containers, including menus and tool bars, know how to add an `Action` object. When an `Action` object is added to such a container, the container:

1. Creates a component that is appropriate for that container (a tool bar creates a button component, for example).
2. Gets the appropriate property(s) from the `Action` object to customize the component (for example, the icon image and flyover text).
3. Checks the initial state of the `Action` object to determine if it is enabled or disabled, and renders the component in the appropriate fashion.
4. Registers a listener with the `Action` object so that is notified of state changes. When the `Action` object changes from enabled to disabled, or back, the container makes the appropriate revisions to the event-generation mechanisms and renders the component accordingly.

For example, both a menu item and a toolbar button could access a `Cut` action object. The text associated with the object is specified as "Cut", and an image depicting a pair of scissors is specified as its icon. The `Cut` action-object can then be added to a menu and to a tool bar. Each container does the appropriate things with the object, and invokes its `actionPerformed` method when the component associated with it is activated. The application can then disable or enable the application object without worrying about what user-interface components are connected to it.

This interface can be added to an existing class or used to create an adapter (typically, by subclassing `AbstractActio`). The `Action` object can then be added to multiple action-aware containers and connected to Action-capable components. The GUI controls can then be activated or deactivated all at once by invoking the `Action` object's `setEnabled` method.

Note that `Action` implementations tend to be more expensive in terms of storage than a typical `ActionListener`, which does not offer the benefits of centralized control of functionality and broadcast of property changes. For th is reason, you should take care to only use `Action`s where their benefits are desired, and use simple `ActionListeners` elsewhere.

See Also:
  `AbstractAction`

Field Summary
`static String` | `ACCELERATOR_KEY` The key used for storing a `KeyStroke` to be used as the accelerator for the action.
`static String` | `ACTION_COMMAND_KEY` The key used to determine the command string for the `ActionEvent` that will be created when an `Action` is going to be notified as the result of residing in a `Keymap` associated with a `JComponent`.
`static String` | `DEFAULT` Not currently used.
`static String` | `LONG_DESCRIPTION` The key used for storing a longer description for the action, could be used for context-sensitive help.
`static String` | `MNEMONIC_KEY` The key used for storing an int key code to be used as the mnemonic for the action.
`static String` | `NAME` The key used for storing the name for the action, used for a menu or button.
`static String` | `SHORT_DESCRIPTION` The key used for storing a short description for the action, used for tooltip text.
`static String` | `SMALL_ICON` The key used for storing a small icon for the action, used for toolbar buttons.

Method Summary
`void` | `addPropertyChangeListener(PropertyChangeListener listener)` Adds a `PropertyChange` listener.
`Object` | `getValue(String key)` Gets one of this object's properties using the associated key.
`boolean` | `isEnabled()` Returns the enabled state of the `Action`.
`void` | `putValue(String key, Object value)` Sets one of this object's properties using the associated key.
`void` | `removePropertyChangeListener(PropertyChangeListener listener)` Removes a `PropertyChange` listener.
`void` | `setEnabled(boolean b)` Sets the enabled state of the `Action`.

Methods inherited from interface java.awt.event.ActionListener
`actionPerformed`

Field Detail

### DEFAULT

    public static final String DEFAULT

  Not currently used.

  See Also:
    Constant Field Values

### NAME

    public static final String NAME

  The key used for storing the name for the action, used for a menu or button.

  See Also:
    Constant Field Values

### SHORT_DESCRIPTION

    public static final String SHORT_DESCRIPTION

  The key used for storing a short description for the action, used for tooltip text.

  See Also:
    Constant Field Values

### LONG_DESCRIPTION

    public static final String LONG_DESCRIPTION

  The key used for storing a longer description for the action, could be used for context-sensitive help.

  See Also:
    Constant Field Values

### SMALL_ICON

    public static final String SMALL_ICON

  The key used for storing a small icon for the action, used for toolbar buttons.

  See Also:
    Constant Field Values

### ACTION_COMMAND_KEY

    public static final String ACTION_COMMAND_KEY

  The key used to determine the command string for the `ActionEvent` that will be created when an `Action` is going to be notified as the result of residing in a `Keymap` associated with a `JComponent`.

  See Also:
    Constant Field Values

### ACCELERATOR_KEY

    public static final String ACCELERATOR_KEY

  The key used for storing a `KeyStroke` to be used as the accelerator for the action.

  Since:
    1.3
  See Also:
    Constant Field Values

### MNEMONIC_KEY

    public static final String MNEMONIC_KEY

  The key used for storing an int key code to be used as the mnemonic for the action.

  Since:
    1.3
  See Also:
    Constant Field Values

Method Detail

### getValue

    public Object getValue(String key)

  Gets one of this object's properties using the associated key.

  See Also:
    `putValue(java.lang.String, java.lang.Object)`

### putValue

    public void putValue(String key,
                         Object value)

  Sets one of this object's properties using the associated key. If the value has changed, a `PropertyChangeEvent` is sent to listeners.

  Parameters:
    `key` - a `String` containing the key
    `value` - an `Object` value

### setEnabled

    public void setEnabled(boolean b)

  Sets the enabled state of the `Action`. When enabled, any component associated with this object is active and able to fire this object's `actionPerformed` method. If the value has changed, a `PropertyChangeEvent` is sent to listeners.

  Parameters:
    `b` - true to enable this `Action`, false to disable it

### isEnabled

    public boolean isEnabled()

  Returns the enabled state of the `Action`. When enabled, any component associated with this object is active and able to fire this object's `actionPerformed` method.

  Returns:
    true if this `Action` is enabled

### addPropertyChangeListener

    public void addPropertyChangeListener(PropertyChangeListener listener)

  Adds a `PropertyChange` listener. Containers and attached components use these methods to register interest in this `Action` object. When its enabled state or other property changes, the registered listeners are informed of the change.

  Parameters:
    `listener` - a `PropertyChangeListener` object

### removePropertyChangeListener

    public void removePropertyChangeListener(PropertyChangeListener listener)

  Removes a `PropertyChange` listener.

  Parameters:
    `listener` - a `PropertyChangeListener` object
  See Also:
    `addPropertyChangeListener(java.beans.PropertyChangeListener)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2003 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.