您的位置:首页 > 编程语言 > Java开发

GEF,EMF,RCP,Eclipse's plugin的几个问题(4) No more handles Exception 解决办法

2005-07-28 11:39 676 查看
这个异常,一般是由于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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐