关键字:Draw2d、布局管理器、约束(Constraint)
Draw2d中的布局管理器和约束是一一对应的,也就是说不同的布局管理对应不同的约束。
XYLayout
|
Rectangle
|
new Rectangle(10,10,-1,-1)
|
BorderLayout
|
Integer |
BorderLayout.CENTER
|
FlowLayout |
无 |
|
StackLayout |
无 |
|
GridLayout |
GridData |
new GridData(10,10) |
从哪里看出布局管理器和约束的对应关系。
XYLayout
public class XYLayout
extends AbstractLayout {
...
public void layout(IFigure parent) {
...
Rectangle bounds = (Rectangle)getConstraint(f);
...
}
BorderLayout
public class BorderLayout
extends AbstractHintLayout
{
......
public void setConstraint(IFigure child, Object constraint) {
......
switch (((Integer) constraint).intValue()) {
.....
}
GridLayout
public class GridLayout extends AbstractLayout {
.......
Dimension layout(IFigure container, boolean move, int x, int y, int width,
int height, boolean flushCache) {
.....
GridData data = (GridData) getConstraint(child);
.....
}
对于布局管理器的理解,其实就是要抓住一个重点那就是,它是用来管理子figure是如何放置的。
分享到:
相关推荐
在Draw2D图形库中,Layout管理器是一个至关重要的组件,它负责控制图形元素的排列方式和尺寸。正如在SWT(Standard Widget Toolkit)中利用`layout`来组织控件的位置,Draw2D中的`LayoutManager`同样扮演着布局管理...
在`constraint 2.0`中,苹果对`Auto Layout`进行了优化,提供了更简洁、高效的API,使得在代码中创建和管理约束变得更加便捷。`NSLayoutConstraint`类是用于创建和修改约束的主要对象,而`constraint 2.0`主要体现在...
#### 创建与管理约束 - **增加约束**:使用`ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_type (column_list);`语法,例如,向`emp`表添加一个薪资检查约束`emp_chk_sal CHECK(sal >= 800);`...
在Android开发中,ConstraintLayout(约束布局)是一种强大的布局工具,它允许开发者通过代码或XML来定义和管理视图之间的关系,实现灵活的界面设计。本"constraint代码约束Demo"着重探讨了如何在代码中应用...
在Android开发中,布局管理器是构建用户界面的关键部分,其中`ConstraintLayout`是一个非常重要的布局工具,尤其在创建复杂的、响应式的用户界面时。本篇文章将深入解析`ConstraintLayout`的使用,帮助开发者充分...
- **1.2.2 用户接口**:提供了直观的用户界面,便于用户操作和管理约束。 - **1.2.3 View选项**:提供了不同的视图选项来查看约束,包括但不限于列表视图、树形视图等。 **1.3 启动约束管理器** 通常通过Cadence...
Java中的BorderLayout布局管理器是Java AWT(Abstract Window Toolkit)包中的一种基本布局管理器,主要用于组织和管理GUI(图形用户界面)组件在容器内的布局。这种布局将容器分为五个区域:北(North)、南(South...
在Oracle数据库中,约束是确保数据完整性的一种机制,它们用于限制可以存储在表中的数据类型和范围。约束有助于避免不合法或无意义的数据输入,从而维护数据库的准确性和一致性。以下是对五种主要约束类型的详细解释...
Allegro 16.6是Cadence公司出品的一款用于PCB设计的工具,具有强大的约束管理器来设置设计规则,保证PCB的布局布线满足电子信号完整性和电磁兼容性要求。本文主要讲解了Allegro 16.6约束管理器的使用,包括基本的...
- **默认间距规则**:通过CM图标进入约束管理器,选择Spacing > All Layers,修改DEFAULT规则。 - **特殊间距约束**:右键Default创建Spacing CSet,为特定网络分配规则,如GND网络设置12MIL_SPACE。 - **Class-...
利用Python+Gurobi编写代码,复现文章:Solving two-stage robust optimization problems using a column-and- constraint generation method。
总的来说,SQL Server 2005的学习笔记涵盖了数据库创建、表结构设计、约束管理和身份验证模式设置等核心概念,这些都是数据库管理及开发的基础。通过深入理解和实践这些知识点,能帮助初学者建立起对SQL Server...
WebStorm是一款流行的JavaScript开发IDE,它提供了强大的代码编辑、调试和项目管理功能,对Cocos2d-js开发提供了很好的支持。使用WebStorm进行Cocos2d-js开发可以提高效率,提供代码提示、自动格式化和错误检查等...
### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...
### iOS自动布局高级用法及纯手码约束写法 #### 一、概述 在iOS开发过程中,自动布局(Auto Layout)是一种非常重要的布局管理方式,它能够帮助开发者轻松实现不同屏幕尺寸下的适配问题。相比于传统的frame布局,...
SQL Server 数据库学习笔记 SQL Server 是一种关系数据库管理系统,由 Microsoft 公司开发。它使用 Transact-SQL(T-SQL)语言来管理和操作数据库。本文将对 SQL Server 数据库的基本操作进行总结,涵盖创建数据库...
Oracle数据库Constraint约束的常用操作及异常处理 Constraint约束是一种机制,用于确保数据库中的数据符合一定的规则和格式。在Oracle数据库中,Constraint约束可以分为多种类型,包括主键约束、唯一约束、检查约束...
书中详细阐述了约束编程的核心框架,包括预处理(Preprocess)、幸福状态(Happy)、原子性(Atomic)、分割(Split)、按情况推进(Proceed by Cases)以及约束传播(Constraint Propagation)。其中,约束传播算法...
接触约束(Contact Constraint):接触约束是由Box2D自动创建的,用于处理不同形状之间的接触和碰撞。 关节(Joint):关节用于将两个或多个物体连接在一起。Box2D支持多种关节类型,如旋转关节、棱柱关节和距离...