SWT Image (ImageDescriptor类)

本文介绍如何利用JFace包中的ImageDescriptor类创建SWT图像,包括从文件、URL路径加载图像,以及如何高效缓存图像。同时展示了Eclipse自带图像的调用方法,以及如何通过ImageRegistry类管理和缓存图像描述符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值