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:
Action object. When an Action object is added
to such a container, the container:
Action object to
customize the component (for example, the icon image and flyover text).
Action object to determine
if it is enabled or disabled, and renders the component in the
appropriate fashion.
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.
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 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.
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 this reason,
you should take care to only use Actions where their benefits
are desired, and use simple ActionListeners elsewhere.
KeyStroke to be used as the
accelerator for the action.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.String
description for the action, could be used for context-sensitive help.KeyEvent to be used as
the mnemonic for the action.String name
for the action, used for a menu or button.String
description for the action, used for tooltip text.Icon, such
as ImageIcon, for the action, used for toolbar buttons.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.Action. When enabled,
any component associated with this object is active and
able to fire this object's actionPerformed method.PropertyChangeEvent is sent
to listeners.PropertyChange listener.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.