Draw2D
文章平均质量分 74
leng1987021
这个作者很懒,什么都没留下…
展开
-
Figure中的paint
尽管一个新的figure可以由多个自组合而成,但是归根结底figure还是画出来的,所以了解figure中GC画的顺序和步骤,对自己扩展一个新的figure是有帮助的。 1.paint:public void paint(Graphics graphics) { if (getLocalBackgroundColor() != null) graphics.setBack...原创 2011-12-28 17:29:35 · 155 阅读 · 0 评论 -
IFigure
首先在这里说几个东西:1.Layer层无边界的。 2.Pane窗格有边界的容器。 IFigure在draw2d中的位置,已经draw2d这套架构的机制咱不在这里详述。记得第一次接触这个,找到最多的就是draw2d的机制的文章。当然IFigure的文章也多,但是为了更好的学习Figure,还是写一篇这样的文章,部分内容来自网上。 IFigure:这个接口里面定义了很多东西,但是主要分...原创 2011-12-06 16:22:53 · 207 阅读 · 0 评论 -
Layer层和Pane窗口,Viewport视口
1.Layer层:FreeformFigure所有实现此接口的figure都具备向四周延伸的能力,但是此种figure必须放在FreeformViewport类似容器里面。 FreeformLayer:里面有一个FreeformHelper对象用于管理它的子,这里不深究它里面的逻辑,只强调它的用法。一般一个编辑器都是以一个这样的自由延伸的容器作为跟,它最主要的作用是编辑器里面的Laye...原创 2011-12-06 14:57:40 · 465 阅读 · 0 评论 -
LayoutManager布局管理
不要设置figure的大小,而是应该在父中用setConstraint方法设置子的大小,就像在swt里我们使用layout来控制各个控件的摆放位置一样,在Draw2D里最好也把这个工作交给LayoutManager来做。除非是在自己实现的Layout里,一般程序里自己不要轻易使用setBounds()、setLocation()和setSize()这些方法控制图形的位置和大小,而应该在为每个图...原创 2011-12-06 11:38:28 · 549 阅读 · 0 评论 -
Rectangle,Dimension,Insets和Point
Rectangle:Rectangle在Draw2D中是很常用的一个类,它不仅仅描述了矩形区域,而且内置了很多计算矩形区域的方法。在Rectangle里面使用getXXX会克隆一个Rectangle对象返回,一般情况下优先使用getXX方法。 1.contains(int x, int y):这个方法好,可以确定鼠标是否在当前区域内。它的重载方法也能判断一个矩形是否在此区域里面。...原创 2011-12-05 17:43:36 · 456 阅读 · 0 评论 -
line线
1.Connection接口:draw2d里面的线必须实现这个接口,这个接口里面有一个PointList,这个list里面放跟这个线相关的所有ConnectionAnchor。ConnectionAnchor是一个个瞄点,线是必须穿过这些瞄点的。 2.Polyline:这个相当于线的实现类,一个Figure,是在Shape的基础上发展出来的。这个类里面控制线的宽度大小形状还有颜色之类的,是...原创 2011-12-02 15:07:39 · 722 阅读 · 0 评论 -
Router路由
Router路由:设定线的轨迹,在Connection接口中定义了添加路由的方式,所以实现了Connection接口的Figure都可以添加路由。另外在ConnectionLayer中有一个方法,是为此Layer下的所有实现了Connection接口的Figure添加一个路由。当然,我们还可以自定义一些Figure添加路由。 ConnectionRouter接口:路由的基础接口,所有的路由...原创 2011-12-02 15:01:20 · 156 阅读 · 0 评论 -
Anchor锚点
Anchor锚点:线的两端连接的端点, ConnectionAnchor接口:Anchor锚,编辑器中线的连接点ConnectionAnchor是它的基本接口。如果线上设置了锚,线会改变原有的轨迹,在编辑器中穿过一个又一个锚点。 ConnectionAnchorBase抽象类:它实现ConnectionAnchor接口,就对锚点的事件的方法做了一下处理。 XYAnchor:...原创 2011-12-01 21:10:18 · 259 阅读 · 0 评论 -
Border
当显示图形元素的过程中,可以为图形元素增加一些修饰,其中的一个修饰是边界,例如在一个图形元素的周围显示其约束矩形等。 Border接口:边框的顶级接口,最主要作用貌似是计算LabeledBorder接口:一个跟文本相关的接口,它用于在设置了文本信息(字符个数和字体样式之类的)然后对边框大小进行改变。AbstractBorder类:一个抽象的Border类。...原创 2011-12-01 18:47:47 · 150 阅读 · 0 评论 -
draw2d详述(IFigure)
1.IFigureIFigure接口是所有Figure的基础接口,里面有很多方法,这里只列出部分自己觉得有用的方法: (1)add(IFigure figure, Object constraint, int index):添加一个子,并且指定其约束和位置: public void add(IFigure figure, Object constraint, int...原创 2012-05-15 00:43:54 · 395 阅读 · 0 评论 -
draw2d详述(LightweightSystem)
作为gef的展现层draw2d以其轻量灵活著称,在了解gef的同事,如果不花足够多的时间了解draw2d,就相当你有一半是无知的。 1.LightweightSystem与GraphicalViewerImpl: 它为SWT与draw2d建立联系,使得Figure能够很好的被Canvas管理。 要达到这个目的,必须做三件事:1.创建一个Canvas。2.创建一个Lig...原创 2012-05-15 00:43:37 · 238 阅读 · 0 评论 -
自动换行的draw2d标签
在draw2d中跟文字布局相关的东西是Flow,无论是布局还是figure,都是FlowXX或者XXFlow。下面是八进制博客里面的代码: class LabelEx extends FlowPage { private TextFlow contents; public LabelEx() { this(""); } ...原创 2012-05-14 01:13:18 · 104 阅读 · 0 评论 -
常用效果的实现
在Draw2D中,想有比较好看的界面效果,就必须添加一些特殊点的绘制方法: 1.渐变颜色的绘制: graphics.setBackgroundColor(ColorConstants.lightBlue); graphics.setForegroundColor(new Color(null,246,246,246)); graphics.fillGradient(...原创 2012-05-14 01:12:17 · 227 阅读 · 0 评论 -
Graphics绘制工具
Graphics是draw2d中的绘制类,所有的figure都是由这个类的子类画成的。在Graphics里面所有的drawXxx()方法都是绘制轮廓的(边框),所有的fillXxx()都是填充。 Graphics是一个抽象类,里面有很多抽象方法:clipRect:裁剪矩形,这个不太明白 drawArc:圆弧drawFocus:drawImage:drawLin...原创 2011-12-28 22:25:44 · 191 阅读 · 0 评论 -
在编辑器中创建一个ScrollPane
在实现UI编辑器的时候,由于本身有些UI组件是一个窗体类型的组件。那么我们在编辑器中画的时候也需要画窗体,侧滑条之类的都得备齐了。 gef窗体的构造元素:1.ScrollPane:一个架子,有两个滑调,负责显示窗体的最外层边框,如侧滑条。2.Viewport:视口,本来把有很多内容,但是视口里面就只能看到一部分,其它部分的内容被隐藏。3.IFigure:视口里面的内容,它是真实...原创 2012-02-10 16:29:06 · 304 阅读 · 0 评论