SWT全接触 - 编程入门网
se.swt.events.PaintListener,其回调函数的参数是一个 org.eclipse.swt.events.PaintEvent类的实例。这个PaintEvent实例中包含一个GC的引用,你可以向这 个GC发送消息。下面的代码示例说明了如何建立这种类型的绘图:
3.4 剪切(Clipping) GC的剪切域是可见绘图发生的部分。在缺省情况下,一个GC是一个被构造的可视部分边界。改变一个 GC的剪切域可以让我们构造出各种图形效果。其中的一个例子是如果你想填充一个缺失了边缘的矩形。一 种方法是绘制多边形矩形来组成所需要的图形,另一种方法就是剪切GC,然后对其剪切部分进行填充。
这段代码在Shell上的显示的过程效果如下: SWT全接触(8)时间:2011-11-09 IBM 薛笛3.5 画板(Canvas) 虽然任何Control都可以通过自身的paintEvent来绘制图形,但其子类 org.eclipse.swt.widgets.Canvas 是专门被设计用来进行图形操作的特殊的绘图类。我们既可以使用一 个Canvas,再加入一个绘图监听器来实现绘图,也可以通过继承来建立一个可重用的自定义Control。 Canvas有很多style bit,可以在绘图发生时产生作用。 3.6 绘制直线和图形 我们有很多方法可以在一个GC上画线,包括在两点之间,一系列离散的点之间或一个预定义的图形上 都可以。直线是以GC的前景色来绘制的,我们可以通过GC绘制拥有不同厚度的各式直线。对于一个Paint 事件,GC有着与Control组件一样的属性,即激发事件且缺省的直线样式固定为1个像素宽。 GC.drawLine(int x1, int y1, int x2, int y2);这条语句在可绘制的面板上的两点间花了一条直线 ,起始点为(x1,y1),终止点为(x2,y2)。终止点包含在画好的直线中。如果起始点等于终止点的话,将 会有一个独立的象素点被绘制出来。 GC.drawPolyline(int[] pointArray);这条语句绘制了一系列互相连接的线段,作为参数的数组用于 描述点的位置。语句gc.drawPolyline(new int[] { 25,5,45,45,5,45 });绘制了如下的图形: GC.drawPolygon(int[] pointArray);与drawPolyline(int[])是类似的,唯一区别在于最后一个点和 低一个点是连接的。 gc.drawPolygon(new int[] { 25,5,45,45,5,45 });将会获得与上图一样的结果。 GC.drawRectangle(int x, int y, int width, int height);这条语句从左上角的(X,Y)点,用参 数中的宽和高画出了一个矩形。gc.drawRectangle(5,5,90,45);将会绘制出如下图形: GC.drawRoundedRectangle(int x,int y,int width,int height,int arcWidth,int arcHeight);一个 圆矩形与标准矩形的区别就在于其四个角是圆的。圆矩形的每一个角都可以被想象成为1/4个椭圆,并且 arcWidth和arcHeight由完整的椭圆的宽和高决定。gc.drawRoundedRectangle(5,5,90,45,25,15);绘制了 一个 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |