- 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 JFCAction
interface. Standard behaviors like the get and set methods forAction
object properties (icon, text, and enabled) are defined here. The developer need only subclass this abstract class and define theactionPerformed
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 seeXMLEncoder
.- Since:
- 1.2
- See Also:
Action
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected SwingPropertyChangeSupport
changeSupport
If anyPropertyChangeListeners
have been registered, thechangeSupport
field describes them.protected boolean
enabled
Specifies whether action is enabled; the default is true.-
Fields declared in interface javax.swing.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
-
-
Constructor Summary
Constructors Constructor Description AbstractAction()
Creates anAction
.AbstractAction(String name)
Creates anAction
with the specified name.AbstractAction(String name, Icon icon)
Creates anAction
with the specified name and small icon.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPropertyChangeListener(PropertyChangeListener listener)
Adds aPropertyChangeListener
to the listener list.protected Object
clone()
Clones the abstract action.protected void
firePropertyChange(String propertyName, Object oldValue, Object newValue)
Supports reporting bound property changes.Object[]
getKeys()
Returns an array ofObject
s which are keys for which values have been set for thisAbstractAction
, ornull
if no keys have values set.PropertyChangeListener[]
getPropertyChangeListeners()
Returns an array of all thePropertyChangeListener
s added to this AbstractAction with addPropertyChangeListener().Object
getValue(String key)
Gets theObject
associated with the specified key.boolean
isEnabled()
Returns true if the action is enabled.void
putValue(String key, Object newValue)
Sets theValue
associated with the specified key.void
removePropertyChangeListener(PropertyChangeListener listener)
Removes aPropertyChangeListener
from the listener list.void
setEnabled(boolean newValue)
Sets whether theAction
is enabled.-
Methods declared in class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods declared in interface java.awt.event.ActionListener
actionPerformed
-
-
-
-
Field Detail
-
enabled
protected boolean enabled
Specifies whether action is enabled; the default is true.
-
changeSupport
protected SwingPropertyChangeSupport changeSupport
If anyPropertyChangeListeners
have been registered, thechangeSupport
field describes them.
-
-
Constructor Detail
-
AbstractAction
public AbstractAction()
Creates anAction
.
-
AbstractAction
public AbstractAction(String name)
Creates anAction
with the specified name.- Parameters:
name
- the name (Action.NAME
) for the action; a value ofnull
is ignored
-
-
Method Detail
-
getValue
public Object getValue(String key)
Gets theObject
associated with the specified key.- Specified by:
getValue
in interfaceAction
- Parameters:
key
- a string containing the specifiedkey
- Returns:
- the binding
Object
stored with this key; if there are no keys, it will returnnull
- See Also:
Action.getValue(java.lang.String)
-
putValue
public void putValue(String key, Object newValue)
Sets theValue
associated with the specified key.- Specified by:
putValue
in interfaceAction
- Parameters:
key
- theString
that identifies the stored objectnewValue
- theObject
to store using this key- See Also:
Action.putValue(java.lang.String, java.lang.Object)
-
isEnabled
public boolean isEnabled()
Returns true if the action is enabled.- Specified by:
isEnabled
in interfaceAction
- Returns:
- true if the action is enabled, false otherwise
- See Also:
Action.isEnabled()
-
setEnabled
public void setEnabled(boolean newValue)
Sets whether theAction
is enabled. The default istrue
.- Specified by:
setEnabled
in interfaceAction
- Parameters:
newValue
-true
to enable the action,false
to disable it- See Also:
Action.setEnabled(boolean)
-
getKeys
public Object[] getKeys()
Returns an array ofObject
s which are keys for which values have been set for thisAbstractAction
, ornull
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 appropriatePropertyChangeEvent
to any registeredPropertyChangeListeners
.- Parameters:
propertyName
- the name of the property that has changedoldValue
- the old value of the propertynewValue
- the new value of the property
-
addPropertyChangeListener
public void addPropertyChangeListener(PropertyChangeListener listener)
Adds aPropertyChangeListener
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
, orsetForeground
. 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 interfaceAction
- Parameters:
listener
- ThePropertyChangeListener
to be added- See Also:
Action.addPropertyChangeListener(java.beans.PropertyChangeListener)
-
removePropertyChangeListener
public void removePropertyChangeListener(PropertyChangeListener listener)
Removes aPropertyChangeListener
from the listener list. This removes aPropertyChangeListener
that was registered for all properties.- Specified by:
removePropertyChangeListener
in interfaceAction
- Parameters:
listener
- thePropertyChangeListener
to be removed- See Also:
Action.removePropertyChangeListener(java.beans.PropertyChangeListener)
-
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners()
Returns an array of all thePropertyChangeListener
s added to this AbstractAction with addPropertyChangeListener().- Returns:
- all of the
PropertyChangeListener
s 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 byObject.clone()
.- Overrides:
clone
in classObject
- Returns:
- a clone of this instance.
- Throws:
CloneNotSupportedException
- if the object's class does not support theCloneable
interface. Subclasses that override theclone
method can also throw this exception to indicate that an instance cannot be cloned.- See Also:
Cloneable
-
-