# Class SwingPropertyChangeSupport

java.lang.Object
java.beans.PropertyChangeSupport
javax.swing.event.SwingPropertyChangeSupport

All Implemented Interfaces:
  `Serializable`

public final class SwingPropertyChangeSupport extends PropertyChangeSupport
This subclass of `java.beans.PropertyChangeSupport` is almost identical in functionality. The only difference is if constructed with `SwingPropertyChangeSupport(sourceBean, true)` it ensures listeners are only ever notified on the Event Dispatch Thread.

## Constructor Summary

Constructors
Constructor
Description
`SwingPropertyChangeSupport(Object sourceBean)`
Constructs a SwingPropertyChangeSupport object.
`SwingPropertyChangeSupport(Object sourceBean, boolean notifyOnEDT)`
Constructs a SwingPropertyChangeSupport object.

## Method Summary

Modifier and Type
Method
Description
`void`
`firePropertyChange(PropertyChangeEvent evt)`
Fires a property change event to listeners that have been registered to track updates of all properties or a property with the specified name.
`boolean`
`isNotifyOnEDT()`
Returns `notifyOnEDT` property.

### Methods declared in class PropertyChangeSupport

`addPropertyChangeListener, addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, hasListeners, removePropertyChangeListener, removePropertyChangeListener`
Modifier and Type
Method
Description
`void`
`addPropertyChangeListener(PropertyChangeListener listener)`
Add a PropertyChangeListener to the listener list.
`void`
`addPropertyChangeListener(String propertyName, PropertyChangeListener listener)`
Add a PropertyChangeListener for a specific property.
`void`
`fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)`
Reports a boolean bound indexed property update to listeners that have been registered to track updates of all properties or a property with the specified name.
`void`
`fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)`
Reports an integer bound indexed property update to listeners that have been registered to track updates of all properties or a property with the specified name.
`void`
`fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)`
Reports a bound indexed property update to listeners that have been registered to track updates of all properties or a property with the specified name.
`void`
`firePropertyChange(String propertyName, boolean oldValue, boolean newValue)`
Reports a boolean bound property update to listeners that have been registered to track updates of all properties or a property with the specified name.
`void`
`firePropertyChange(String propertyName, int oldValue, int newValue)`
Reports an integer bound property update to listeners that have been registered to track updates of all properties or a property with the specified name.
`void`
`firePropertyChange(String propertyName, Object oldValue, Object newValue)`
Reports a bound property update to listeners that have been registered to track updates of all properties or a property with the specified name.
`PropertyChangeListener[]`
`getPropertyChangeListeners()`
Returns an array of all the listeners that were added to the PropertyChangeSupport object with addPropertyChangeListener().
`PropertyChangeListener[]`
`getPropertyChangeListeners(String propertyName)`
Returns an array of all the listeners which have been associated with the named property.
`boolean`
`hasListeners(String propertyName)`
Check if there are any listeners for a specific property, including those registered on all properties.
`void`
`removePropertyChangeListener(PropertyChangeListener listener)`
Remove a PropertyChangeListener from the listener list.
`void`
`removePropertyChangeListener(String propertyName, PropertyChangeListener listener)`
Remove a PropertyChangeListener for a specific property.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Constructor Details

### SwingPropertyChangeSupport

public SwingPropertyChangeSupport(Object sourceBean)
Constructs a SwingPropertyChangeSupport object.

Parameters:
  `sourceBean` - The bean to be given as the source for any events.
Throws:
  `NullPointerException` - if `sourceBean` is `null`

### SwingPropertyChangeSupport

public SwingPropertyChangeSupport(Object sourceBean, boolean notifyOnEDT)
Constructs a SwingPropertyChangeSupport object.

Parameters:
  `sourceBean` - the bean to be given as the source for any events
  `notifyOnEDT` - whether to notify listeners on the Event Dispatch Thread only
Throws:
  `NullPointerException` - if `sourceBean` is `null`
Since:
  1.6

## Method Details

### firePropertyChange

public void firePropertyChange(PropertyChangeEvent evt)
Fires a property change event to listeners that have been registered to track updates of all properties or a property with the specified name.

No event is fired if the given event's old and new values are equal and non-null.

If `isNotifyOnEDT()` is `true` and called off the Event Dispatch Thread this implementation uses `SwingUtilities.invokeLater` to send out the notification on the Event Dispatch Thread. This ensures listeners are only ever notified on the Event Dispatch Thread.

Overrides:
  `firePropertyChange` in class `PropertyChangeSupport`
Parameters:
  `evt` - the `PropertyChangeEvent` to be fired
Throws:
  `NullPointerException` - if `evt` is `null`
Since:
  1.6

### isNotifyOnEDT

public boolean isNotifyOnEDT()
Returns `notifyOnEDT` property.

Returns:
  `notifyOnEDT` property
Since:
  1.6
See Also:
  - `SwingPropertyChangeSupport(Object sourceBean, boolean notifyOnEDT)`