SWT RCP图片显示问题

本人是从SWT一路走到RCP的,自我感觉RCP工程很多方面和SWT/JFace的开发不同。以ImageDescriptor讲解一下: 在SWT/JFace的java项目中,获取一个图像描述符的常用方法如下: public ImageDescriptor getImageDesc(String fileName) { try { URL url = new URL("file:icons/"+fileName); return ImageDescriptor.createFromURL(url); } catch(MalformedURLException mue) { mue.printStackTrace(); } return null; } 但是这个方法在RCP开发中根本图片根本就不能正常显示,即使创建一个SWT的shell在在上面放一个ToolBar加入Action测试正确,但是RCP程序中就是不能够正常显示。 原因如下: 原因是这里不识别java项目的主目录。 解决方法: 1,使用createFromFile()这个方法,而不能够使用createFromURL()。如: ImageDescriptor imageDesc = ImageDescriptor.createFromFile(ImageFactory.class, location);但是这个和类ImageFactory.class在同一个目录下的文件夹必须命名为app-icons这样的格式,不然就会看起来是一个包而不是文件夹。 缺点:icons目录过深! 2,另一种解决方法就是AbstractUIPlugin.imageDescriptorFromPlugin("crmSample", location);这例AbstractUIPlugin.imageDescriptorFromPlugin(plugin的id, 文件的位置)! 这个问题弄得我一直很混乱,项目也失去了良好的结构:对XML和程序中用到的icons放到了两个不同的文件夹下了。现在我解决了,把自己心得贴出来,希望社区的兄弟们不要再经历我的痛苦了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值