Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Swing 1.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing
Interface Action

All Known Implementing Classes:
  AbstractAction

public abstract interface Action
extends java.awt.event.ActionListener

The JFC Action interface provides a useful extension to the ActionListner 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.

Containers in the Swing set like menus and toolbars know how to add an Action object, as well as other components, using a version of the `add` method. When an Action object is added to such a container, the container:

1. Creates a component that is appropriate for that container (a toolbar 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 intial 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 toolbar. 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 AbstractAction). 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.

See Also:
  `AbstractAction`

Field Summary
`static java.lang.String` | `DEFAULT` Useful constants that can be used as the storage-retreival key when setting or getting one of this object's properties (text or icon).
`static java.lang.String` | `LONG_DESCRIPTION` The key used for storing a longer description for the action, could be used for context-sensitive help.
`static java.lang.String` | `NAME` The key used for storing the name for the action, used for a menu or button.
`static java.lang.String` | `SHORT_DESCRIPTION` The key used for storing a short description for the action, used for tooltip text.
`static java.lang.String` | `SMALL_ICON` The key used for storing a small icon for the action, used for toolbar buttons.

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

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

Field Detail

### DEFAULT

    public static final java.lang.String DEFAULT

  Useful constants that can be used as the storage-retreival key when setting or getting one of this object's properties (text or icon).

### NAME

    public static final java.lang.String NAME

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

### SHORT_DESCRIPTION

    public static final java.lang.String SHORT_DESCRIPTION

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

### LONG_DESCRIPTION

    public static final java.lang.String LONG_DESCRIPTION

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

### SMALL_ICON

    public static final java.lang.String SMALL_ICON

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

Method Detail

### getValue

    public java.lang.Object getValue(java.lang.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(java.lang.String key,
                         java.lang.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)

  Tests 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()

  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.
  Returns:
    true if this Action is enabled

### addPropertyChangeListener

    public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)

  Add 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(java.beans.PropertyChangeListener listener)

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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Swing 1.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.