GEF常见问题1:为图形编辑器设置背景图片
2006-06-21 17:04
387 查看
GEF的RootEditPart对应的Figure是一个由多个Layer组成的LayeredPane,每个Layer负责包含不同类型的图形元素,如节点、连接、网格线等等。所以要让图形编辑器显示一个图片作为背景,可以在它们其中一个层里绘制这个图片,也可以添加一个层专门放置背景图片。我推荐使用后者,以下代码是在前面的GefPractice项目基础上做了简单修改得到的:
static Image BG_IMAGE=new Image(null,"c:\\bg.jpg");
protected void configureGraphicalViewer() {
super.configureGraphicalViewer();
getGraphicalViewer().setRootEditPart(new ScalableFreeformRootEditPart() {
//覆盖ScalableFreeformRootEditPart的createlayers方法以便增加自己的层
protected void createLayers(LayeredPane layeredPane) {
Layer layer = new FreeformLayer() {
protected void paintFigure(Graphics graphics) {
super.paintFigure(graphics);
//在层上绘制图片,也可以绘制其他图形作为背景,GEF的网格线就是一例
graphics.drawImage(BG_IMAGE,0,0);
}
};
layeredPane.add(layer);
super.createLayers(layeredPane);
}
});
getGraphicalViewer().setEditPartFactory(new PartFactory());
}
这样得到的背景图片只显示编辑器可见区域的部分,也就是会随滚动条滚动,见下图。
![](http://images.cnblogs.com/cnblogs_com/bjzhanghao/gef/editor-bg.gif)
具有背景图片的图形编辑器
工程下载(背景图片名为“c:\bg.jpg”)
static Image BG_IMAGE=new Image(null,"c:\\bg.jpg");
protected void configureGraphicalViewer() {
super.configureGraphicalViewer();
getGraphicalViewer().setRootEditPart(new ScalableFreeformRootEditPart() {
//覆盖ScalableFreeformRootEditPart的createlayers方法以便增加自己的层
protected void createLayers(LayeredPane layeredPane) {
Layer layer = new FreeformLayer() {
protected void paintFigure(Graphics graphics) {
super.paintFigure(graphics);
//在层上绘制图片,也可以绘制其他图形作为背景,GEF的网格线就是一例
graphics.drawImage(BG_IMAGE,0,0);
}
};
layeredPane.add(layer);
super.createLayers(layeredPane);
}
});
getGraphicalViewer().setEditPartFactory(new PartFactory());
}
这样得到的背景图片只显示编辑器可见区域的部分,也就是会随滚动条滚动,见下图。
![](http://images.cnblogs.com/cnblogs_com/bjzhanghao/gef/editor-bg.gif)
具有背景图片的图形编辑器
工程下载(背景图片名为“c:\bg.jpg”)
相关文章推荐
- GEF常见问题1:为图形编辑器设置背景图片
- 【微信小程序常见问题】view标签设置背景图片手机无法预览解决方案二
- 【微信小程序常见问题】view标签设置背景图片手机无法预览解决方案一
- 关于UIToolBar背景图片设置问题
- IE兼容问题之一:table--td设置背景颜色or背景图片,border不能正常显示(用的框架是layui)
- 自定义ListCtrl中设置背景图片的问题
- iOS 解决button设置背景图片的时候拉伸变形的问题
- 关于IE6,7设置BODY背景图片无效问题
- Unity学习笔记4 更换编辑器为VS2013及VS的背景图片设置
- IOS开发:关于设置UIView的背景为图片的方法以及问题
- 解决listview设置背景图片以后,拖动出现黑色的问题。
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
- VS2010解决对话框设置背景图片和文字重叠问题
- css 里设置背景图片遇到的问题
- 关于登录界面的背景图片设置问题
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
- NavigationBar设置背景图片后,内容视图会下移的问题
- 窗口背景图片的设置问题
- 利用CSS设置背景图片不显示的问题
- android ListView常见问题解决方法(滚动背景变黑,去除滑动时阴影,拖动时Item图片不显示)