本人是从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放到了两个不同的文件夹下了。现在我解决了,把自己心得贴出来,希望社区的兄弟们不要再经历我的痛苦了。
相关文章
- eclipse rcp程序问题-主要是关于帮助文档的插件依赖项目
- 关于Eclipse RCP开发3--菜单、工具栏 问题
- UI在带有SWT的Eclipse RCP中做了很奇怪的事情
- 在SWT/JFace RCP应用程序中填充大表。
- SWT RCP图片显示问题
- 在eclipse-rcp / swt中创建多个相同的文本验证侦听器
- Eclipse RCP使用SWT.EMBEDDED方式显示batik的svgCanvas后窗口最大化变白问题
- 执行RCP应用程序时出现问题
- 如何在Eclipse RCP应用程序(SWT)中绑定组合的selectionIndex和Integer?
- Eclipse RCP:创建需要2个不同版本插件的产品时遇到问题