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 inherited from 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