Class Resource

java.lang.Object
org.eclipse.swt.graphics.Resource
Direct Known Subclasses:
Color, Cursor, Font, GC, Image, Path, Pattern, Region, TextLayout, Transform

public abstract class Resource extends Object
This class is the abstract superclass of all graphics resource objects. Resources created by the application must be disposed.

IMPORTANT: This class is intended to be subclassed only within the SWT implementation. However, it has not been marked final to allow those outside of the SWT development team to implement patched versions of the class in order to get around specific limitations in advance of when those limitations can be addressed by the team. Any class built using subclassing to access the internals of this class will likely fail to compile or run between releases and may be strongly platform specific. Subclassing should not be attempted without an intimate and detailed understanding of the workings of the hierarchy. No support is provided for user-written classes which are implemented as subclasses of this class.

Since:
3.1
See Also:
  • Constructor Details

    • Resource

      public Resource()
  • Method Details

    • dispose

      public void dispose()
      Disposes of the operating system resources associated with this resource. Applications must dispose of all resources which they allocate. This method does nothing if the resource is already disposed.
    • getDevice

      public Device getDevice()
      Returns the Device where this resource was created.
      Returns:
      Device the device of the receiver
      Since:
      3.2
    • isDisposed

      public abstract boolean isDisposed()
      Returns true if the resource has been disposed, and false otherwise.

      This method gets the dispose state for the resource. When a resource has been disposed, it is an error to invoke any other method (except dispose()) using the resource.

      Returns:
      true when the resource is disposed and false otherwise
    • setNonDisposeHandler

      public static void setNonDisposeHandler(Consumer<Error> reporter)
      Enables detection of Resource objects for which dispose() wasn't called, which means a leak of native memory and/or OS resources. WARNING: the reporter will be called from a different thread. Do not block it and do not throw any exceptions. It's best to queue the errors for some other worker to process.
      Parameters:
      reporter - object used to report detected errors. Use null to disable tracking. Setting a new reporter has an immediate effect.
      Since:
      3.116