Module javafx.base
Package javafx.event

# Class WeakEventHandler<T extends Event>

java.lang.Object
javafx.event.WeakEventHandler<T>

Type Parameters:
  `T` - the event class this handler can handle

All Implemented Interfaces:
  `EventListener`, `EventHandler<T>`

public final class WeakEventHandler<T extends Event> extends Object implements EventHandler<T>
Used in event handler registration in place of its associated event handler. Its sole purpose is to break the otherwise strong reference between an event handler container and its associated event handler. While the container still holds strong reference to the registered `WeakEventHandler` proxy, the proxy itself references the original handler only weakly and so doesn't prevent it from being garbage collected. Until this weak reference is broken, any event notification received by the proxy is forwarded to the original handler.

Since:
  JavaFX 8.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WeakEventHandler(EventHandler<T> eventHandler)`
  Creates a new instance of `WeakEventHandler`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `handle(T event)`
  Forwards event notification to the associated event handler.
  `boolean`
  `wasGarbageCollected()`
  Indicates whether the associated event handler has been garbage collected.

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### WeakEventHandler

    public WeakEventHandler(EventHandler<T> eventHandler)
    Creates a new instance of `WeakEventHandler`.
    Parameters:
      `eventHandler` - the original event handler to which to forward event notifications

- ## Method Details

  - ### wasGarbageCollected

    public boolean wasGarbageCollected()
    Indicates whether the associated event handler has been garbage collected. Used by containers to detect when the storage of corresponding references to this `WeakEventHandler` is no longer necessary.
    Returns:
      `true` if the associated handler has been garbage collected, `false` otherwise

  - ### handle

    public void handle(T event)
    Forwards event notification to the associated event handler.
    Specified by:
      `handle` in interface `EventHandler<T extends Event>`
    Parameters:
      `event` - the event which occurred