我们最常使用的XYLayout, 控件是可以随意的在四个边框调整大小, 拖拽控件, 有时我们有需要禁止拖拽或调整大小, 具体实现看下面代码.
解决方法1:
在createChangeConstraintCommand中,根据具体情况返回UnexecutableCommand.INSTANCE即可.
具体代码:
@Override
protected Command createChangeConstraintCommand(EditPart child, Object constraint) {
if (!this.couldChangeConstraint(child)) {
return UnexecutableCommand.INSTANCE;
}
}
解决方法2:
覆盖XYLayoutEditPolicy的createChildEditPolicy()方法即可, 根据具体情况返回ChildEditPolicy.
具体代码:
/**
* @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
*/
@Override
protected EditPolicy createChildEditPolicy(EditPart child) {
if (child instanceof PageEditPart) {
NonResizableEditPolicy childEditPolicy = new NonResizableEditPolicy(); // 不允许调整大小
childEditPolicy.setDragAllowed(false); // 不允许拖拽
return childEditPolicy;
} else if (child instanceof PageHeaderEditPart) {
ResizableEditPolicy childEditPolicy = new ResizableEditPolicy();
childEditPolicy.setDragAllowed(false); // 不允许拖拽
childEditPolicy.setResizeDirections(PositionConstants.SOUTH); // 允许下调整大小
return childEditPolicy;
}
return super.createChildEditPolicy(child); // 默认可调整大小,可拖拽
}
注意:
这个方法是在某个父控件创建控件的时候就设置好了, 再也不会改变的, 就是对某个EditPart的设置只会有一次, 设置好了即不可再改变.
具体说明:
- NonResizableEditPolicy 不允许调整大小
- setDragAllowed 是否允许鼠标拖拽
- ResizableEditPolicy 可调整大小
- setResizeDirections 设置可调整大小的方向
举例:
PositionConstants.SOUTH '南' 也就是 '下' 可以调整
PositionConstants.SOUTH | PositionConstants.EAST 就是 '下', '右', '下右' 允许调整
分享到:
相关推荐
在Android ADT中,GEF的作用主要体现在可视化布局编辑器上,它允许开发者通过拖放的方式设计XML布局文件,实时预览UI效果,以及方便地调整控件的属性和布局关系。此外,GEF还支持图元工厂(MetaFactory),可以生成...
**GEF入门学习例子** **概述** `GEF`(Graphical Editing Framework)是Eclipse开源组织提供的一款强大的图形编辑框架,用于构建图形用户界面(GUI)应用,特别是那些需要进行图形绘制、编辑和操作的软件。这个入门...
6. **ZOrderManager**:层次管理器用于处理图形元素的堆叠顺序,确保用户可以通过拖动调整元素的前后关系。 7. **Layouts**:布局管理器负责图形元素的自动布局,比如网格布局、树状布局等,使得图形界面看起来更加...
GEF提供了`PropertySheet`来展示属性,并且可以自定义属性页,以便根据模型类的不同属性显示不同的编辑控件。 **十二、拖放(Drag and Drop)** GEF支持拖放操作,用户可以将图形元素从一个位置拖动到另一个位置,...
"Visual Editor"是一款专用于GUI设计的插件,它提供了可视化的编辑环境,让用户可以直接拖拽和配置UI元素,而无需编写复杂的代码。Visual Editor支持多种平台和技术,能够帮助开发者快速搭建应用程序的用户界面。它...
通过VE,开发者可以如同操作桌面应用一般,拖拽控件、设置属性,而无需直接编写XML或Java代码。这显著提升了开发效率和降低了学习曲线。 GEF(Graphical Editing Framework)是VE的基础,它为构建图形编辑器提供了...
8. **使用VE**:一旦安装成功,你就可以利用VE进行图形化界面设计,拖拽控件,调整布局,大大提高了GUI开发的效率。 总的来说,安装Eclipse的VE插件是一个相对简单但需要细心的过程。理解插件之间的依赖关系,正确...
- **添加菜单**:在Palette面板中找到“Menubar”控件,将其拖拽到Shell中,然后继续添加子菜单(SubMenu)以及菜单项(MenuItem)。可以通过属性面板调整菜单的文本、图标等属性。 - **菜单热键设置**:例如,要在...
VE是Eclipse中的一个可视化编辑器,它允许开发者通过拖拽和配置控件的方式来创建GUI(图形用户界面)。VE提供了图形化的视图,使得开发者能直观地构建和编辑模型,极大地提高了开发效率,特别是对于那些不熟悉代码的...
这个插件显著提升了Java桌面应用开发的效率,使得开发者能够通过拖拽和配置控件,而不是手动编写代码来构建用户界面。以下是关于Eclipse VE、EMF、GEF及其相关组件的详细知识点: 1. **Eclipse VE(Visual Editor)**...
- 从调色板中拖拽一个 Button 控件到界面上,并设置其文本为“ClickMe”。 - 选中按钮,右击选择“事件” -> “添加事件” -> 选择 widgetSelected 事件。 - 在打开的代码编辑器中编写相应的事件处理函数: ```...
安装完成后,可以在Eclipse的Palette视图中看到ArcGIS的控件,通过拖放的方式将它们加入到Java Swing或JavaFX的用户界面设计中。 在开发过程中,可能遇到的问题包括JDK版本与Eclipse版本不匹配导致的JNI库加载失败...