Image使用代價昂貴,JFace包提供了一個輕量級的ImageDescriptor類.
An image descriptor is an object that knows how to create an SWT image.It does not hold onto images or cache them, but rather just creates them on demand.
ImageDescriptor類是抽象類,不能用new,有2種常用static方法,createFromFile,createFromURL.
1:ImageDescriptor temp = ImageDescriptor.createFromFile(abc.class,"icons/temp.gif")
//在類abc目錄下的icon目錄下的圖片temp.gif
//沒有真正加載這個圖像
2://絕對目錄
URL url = new URL("file:\\c:\\icons\\temp.gif");
ImageDescriptor temp = ImageDescriptor.createFromURL(url)
//項目主目錄
URL url = new URL("file:icons/temp.gif");
ImageDescriptor temp = ImageDescriptor.createFromURL(url)
3: Eclipse自帶圖像調用
ImageDescriptor temp = WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_ETOOL_HOME_NAV);
4: 得到image
Image image = temp.creatImage();
圖像注冊表ImageRegistry類:高速緩存圖像和圖像描述符
ImageRegistry image_registry = new ImageRegistry();
URL url = new URL("file:icons/folder.gif");
ImageDescriptor imaged = ImageDescriptor.createFromURL(url);
image_registry.put("folder",imaged);
//取出image
Image image = image_registry.get("folder");
//取出描述符
ImageDescriptor imageDescriptor = image_registry.getDescriptor("folder");
//刪除圖像
image_registry.remove("folder");
**項目開發初期,建立一個圖像注冊表
**網上教程