Ein Image Handle stellt das native (UI Framework abhängige)
Image zur Verfügung. Des Weiteren kennt ein Image Handle seinen
Image Descriptor wenn es
mit Hilfe eines solchen erzeugt wurde. Die Schnittstelle
IImageHandle
hat die folgenden Methoden:
Object getImage(); boolean isInitialized(); IImageDescriptor getImageDescriptor();
Die Methode getImage()
liefert das native
Image Objekt. Der Typ kann je nach SPI Implementierung
variieren. Das Image wird lazy, also beim
ersten Aufruf der Methode getImage()
erzeugt.
Durch das Registrieren eines Image Handle in der Image Registry
mit Hilfe eines Image
Descriptor wird daher noch
keine Image Resource erzeugt.
Die Methode getImage()
liefert nie
null
zurück. Es könnte jedoch eine Exception
geworfen werden, wenn das Image nicht erzeugt werden kann. Dies
passiert folglich auch nicht beim Registrieren, sondern bei der
ersten Verwendung. Durch die lazy Erzeugung
von Resourcen kann man große Icon Bibliotheken mit vielen Icons
einbinden, und benötigt zur Laufzeit nur den Speicher für die
Icons, die man tatsächlich verwendet.
Will man wissen, ob das Image bereits erzeugt wurde, kann man
dies mit Hilfe der Methode isInitialized()
prüfen.
Image Handles, welche mit Hilfe eines
Image Descriptor
erstellt wurden, liefern diesen mit Hilfe der Methode
getImageDescriptor()
zurück. Die
Betriebssystem Message
Icons und Buffered
Images werden zum Beispiel nicht mit Hilfe eines Image
Descriptors erstellt, weshalb die Methode dort
null
zurückliefert.
Normalerweise benötigt man Image Handles nicht direkt. Sie werden indirekt von der SPI Implementierung bei der Image Registry angefragt.