Mit Hilfe eines Image Descriptor kann ein
Image Handle erzeugt werden.
Normalerweise registriert man in der
Image Registry nicht
direkt ein Image Handle,
sondern verwendet für die Registrierung zum Beispiel einen Image
Descriptor. Derzeit werden zwei Descriptor Typen unterstützt,
IUrlImageDescriptor
und
IStreamFactoryImageDescriptor
.
[21]
Die Schnittstelle IUrlImageDescriptor
hat
die folgende Methode:
URL getImageUrl();
Diese liefert die URL, über welche man das Image einlesen
kann. Die Methode darf nicht null
zurückgeben. Die Klasse UrlImageDescriptor
liefert eine Implementierung der Schnittstelle
IUrlImageDescriptor
.
Das folgende Beispiel zeigt eine Methode, welche eine Image
Konstante mit Hilfe eines
UrlImageDescriptor
in der
Image Registry
registriert:
1 final void registerImage(final IImageConstant imageConstant, final String relativePath) { 2 final String path = rootPath + relativePath; 3 final URL url = getClass().getClassLoader().getResource(path); 4 final IImageDescriptor descriptor = new UrlImageDescriptor(url); 5 Toolkit.getImageRegistry().registerImageConstant(imageConstant, descriptor); 6 }
Die Schnittstelle
IStreamFactoryImageDescriptor
hat die
folgende Methode:
InputStream createInputStream();
Der Input Stream wird genau dann erzeugt, wenn ein natives
Image benötigt wird. Jeder Aufruf muss einen neuen Input
Stream liefern, der insbesondere nicht null
sein darf. Der Stream wird vom Aufrufer der Methode
geschlossen (close()
), wenn er nicht mehr
benötigt wird.
[21]
Die Schnittstelle IStreamImageDescriptor
wird auch unterstützt, ist aber wegen des missverständlichen
Methodennamens getInputStream()
deprecated und soll langfristig entfernt werden.