Class AbstractAction

java.lang.Object
javax.swing.AbstractAction
All Implemented Interfaces:
ActionListener, Serializable, Cloneable, EventListener, Action
Direct Known Subclasses:
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, MetalFileChooserUI.DirectoryComboBoxAction, TextAction

public abstract class AbstractAction extends Object implements Action, Cloneable, Serializable
This class provides default implementations for the JFC Action interface. Standard behaviors like the get and set methods for Action object properties (icon, text, and enabled) are defined here. The developer need only subclass this abstract class and define the actionPerformed method.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans has been added to the java.beans package. Please see XMLEncoder.

Since:
1.2
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    If any PropertyChangeListeners have been registered, the changeSupport field describes them.
    protected boolean
    Specifies whether action is enabled; the default is true.

    Fields declared in interface Action

    ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON
    Modifier and Type
    Field
    Description
    static final String
    The key used for storing a KeyStroke to be used as the accelerator for the action.
    static final String
    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 final String
    Not currently used.
    static final String
    The key used for storing an Integer that corresponds to the index in the text (identified by the NAME property) that the decoration for a mnemonic should be rendered at.
    static final String
    The key used for storing an Icon.
    static final String
    The key used for storing a longer String description for the action, could be used for context-sensitive help.
    static final String
    The key used for storing an Integer that corresponds to one of the KeyEvent key codes.
    static final String
    The key used for storing the String name for the action, used for a menu or button.
    static final String
    The key used for storing a Boolean that corresponds to the selected state.
    static final String
    The key used for storing a short String description for the action, used for tooltip text.
    static final String
    The key used for storing a small Icon, such as ImageIcon.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates an Action.
    Creates an Action with the specified name.
    AbstractAction(String name, Icon icon)
    Creates an Action with the specified name and small icon.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Adds a PropertyChangeListener to the listener list.
    protected Object
    Clones the abstract action.
    protected void
    firePropertyChange(String propertyName, Object oldValue, Object newValue)
    Supports reporting bound property changes.
    Returns an array of Objects which are keys for which values have been set for this AbstractAction, or null if no keys have values set.
    Returns an array of all the PropertyChangeListeners added to this AbstractAction with addPropertyChangeListener().
    Gets the Object associated with the specified key.
    boolean
    Returns true if the action is enabled.
    void
    putValue(String key, Object newValue)
    Sets the Value associated with the specified key.
    void
    Removes a PropertyChangeListener from the listener list.
    void
    setEnabled(boolean newValue)
    Sets whether the Action is enabled.

    Methods declared in class Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    Modifier and Type
    Method
    Description
    boolean
    Compares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    May cause performance issues, deadlocks and hangs.
    final Class<? extends Object>
    Answers the unique instance of java.lang.Class which represents the class of the receiver.
    int
    Answers an integer hash code for the receiver.
    final void
    Causes one thread which is waiting on the receiver to be made ready to run.
    final void
    Causes all threads which are waiting on the receiver to be made ready to run.
    Answers a string containing a concise, human-readable description of the receiver.
    final void
    Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated by notify or notifyAll).
    final void
    wait(long time)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
    final void
    wait(long time, int frac)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.

    Methods declared in interface Action

    accept
    Modifier and Type
    Method
    Description
    default boolean
    accept(Object sender)
    Determines whether the action should be performed with the specified sender object.

    Methods declared in interface ActionListener

    actionPerformed
    Modifier and Type
    Method
    Description
    void
    Invoked when an action occurs.
  • Field Details

    • enabled

      protected boolean enabled
      Specifies whether action is enabled; the default is true.
    • changeSupport

      protected SwingPropertyChangeSupport changeSupport
      If any PropertyChangeListeners have been registered, the changeSupport field describes them.
  • Constructor Details

    • AbstractAction

      public AbstractAction()
      Creates an Action.
    • AbstractAction

      public AbstractAction(String name)
      Creates an Action with the specified name.
      Parameters:
      name - the name (Action.NAME) for the action; a value of null is ignored
    • AbstractAction

      public AbstractAction(String name, Icon icon)
      Creates an Action with the specified name and small icon.
      Parameters:
      name - the name (Action.NAME) for the action; a value of null is ignored
      icon - the small icon (Action.SMALL_ICON) for the action; a value of null is ignored
  • Method Details

    • getValue

      public Object getValue(String key)
      Gets the Object associated with the specified key.
      Specified by:
      getValue in interface Action
      Parameters:
      key - a string containing the specified key
      Returns:
      the binding Object stored with this key; if there are no keys, it will return null
      See Also:
    • putValue

      public void putValue(String key, Object newValue)
      Sets the Value associated with the specified key.
      Specified by:
      putValue in interface Action
      Parameters:
      key - the String that identifies the stored object
      newValue - the Object to store using this key
      See Also:
    • isEnabled

      public boolean isEnabled()
      Returns true if the action is enabled.
      Specified by:
      isEnabled in interface Action
      Returns:
      true if the action is enabled, false otherwise
      See Also:
    • setEnabled

      public void setEnabled(boolean newValue)
      Sets whether the Action is enabled. The default is true.
      Specified by:
      setEnabled in interface Action
      Parameters:
      newValue - true to enable the action, false to disable it
      See Also:
    • getKeys

      public Object[] getKeys()
      Returns an array of Objects which are keys for which values have been set for this AbstractAction, or null if no keys have values set.
      Returns:
      an array of key objects, or null if no keys have values set
      Since:
      1.3
    • firePropertyChange

      protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)
      Supports reporting bound property changes. This method can be called when a bound property has changed and it will send the appropriate PropertyChangeEvent to any registered PropertyChangeListeners.
      Parameters:
      propertyName - the name of the property that has changed
      oldValue - the old value of the property
      newValue - the new value of the property
    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener listener)
      Adds a PropertyChangeListener to the listener list. The listener is registered for all properties.

      A PropertyChangeEvent will get fired in response to setting a bound property, e.g. setFont, setBackground, or setForeground. Note that if the current component is inheriting its foreground, background, or font from its container, then no event will be fired in response to a change in the inherited property.

      Specified by:
      addPropertyChangeListener in interface Action
      Parameters:
      listener - The PropertyChangeListener to be added
      See Also:
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener listener)
      Removes a PropertyChangeListener from the listener list. This removes a PropertyChangeListener that was registered for all properties.
      Specified by:
      removePropertyChangeListener in interface Action
      Parameters:
      listener - the PropertyChangeListener to be removed
      See Also:
    • getPropertyChangeListeners

      public PropertyChangeListener[] getPropertyChangeListeners()
      Returns an array of all the PropertyChangeListeners added to this AbstractAction with addPropertyChangeListener().
      Returns:
      all of the PropertyChangeListeners added or an empty array if no listeners have been added
      Since:
      1.4
    • clone

      protected Object clone() throws CloneNotSupportedException
      Clones the abstract action. This gives the clone its own copy of the key/value list, which is not handled for you by Object.clone().
      Overrides:
      clone in class Object
      Returns:
      Object a shallow copy of this object.
      Throws:
      CloneNotSupportedException - if the receiver's class does not implement the interface Cloneable.