这个异常,一般是由于Image 新建次数过多,导致系统handles(句柄)不够用,throw的
系统级错误.
在GEF程序中,一般出现在XXXTreeEditPart的getImage方法中,由于EditPart要经常刷
新前端显示图形,也就要经常刷新OutLine View,所以,在getImage中获取的Image一定
要先注册到Plugin的ImageReGIStry中,也可以自己用HashMap来保存,到时候,直接从
Map中取即可,这样,就不用重新创建handle,也就不会出现handles不够的问题了.
具体如下:
public static HashMap ImageList = new HashMap();
//regieser images
public static void registerImages(){
Image image = null;
for (int i=0;i<AllImageNameList.length;i ){
//AllImageNameList为image 文件名称(含路径) 数组
//例如:icons/node/nodeXXX.gif
String str = AllImageNameList[i];
//YourPlugin中的方法...
image = YourPlugin.getImageDescriptor(str).createImage();
ImageList.put(str,image);
}
}
//get Image
//在XXXTreeEditPart的getImage方法中调用...
public static Image getNodeImage(String nodeId){
return (Image)ImageList.get(nodeId);
}
上一篇: JSP页面文件目录树源码(递归算法)
下一篇: GEF,EMF,RCP,Eclipse's plugin的几个问题(7) 创建自己的选择文件PropertyDescrptor自定义的FileNamePropertyDescriptor
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!


