第12章 SWT绘图.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 SWT绘图

第12章 SWT的绘图 在图形界面中,无论是显示一个部件,还是显示一个图标,或者复杂一点的,显示图像,打印数据,都是一系列绘图的过程。本章将学习SWT中所提供的绘图功能,利用这些绘图功能进行简单的绘画和图像处理。 12.1 基本绘图 SWT的基本绘图就是使用一些基本的绘图命令,在界面上绘画图形。基本绘图命令有:画圆、画直线、画矩形、绘画文本等等。本小节先学习这些基本的绘图命令。除了学习基本的绘图命令外,还将学习到如何在一个SWT部件上绘图。 12.1.1 在Shell上画图 先来看一个简单的例子,这个例子是在一个Shell窗口上画一个圆,通过这个例子了解一下SWT中画图的基本原理。 12.1.2 GC简介 类org.eclipse.swt.graphics.GC是一个封装了所有可执行的绘图操作的图形相关类(Graphics Context)。在GC中,有一系列draw开头的方法,用于绘画图形,例如: void drawArc: void drawImage: void drawLine: void drawOval: void drawPath: void drawPoint: void drawRectangle: void drawString: 12.1.3 SWT部件的Paint事件 如果是在部件中绘画,是不需要自己创建GC对象的。部件中的GC对象由部件创建,当需要绘画部件中的图像时,在部件的redraw()方法中创建GC对象,然后绘画部件中的图形。并且还会发送一个Paint事件。绘画完成后,部件会马上释放GC对象(调用GC的dispose()方法)。 在SWT中,大部分部件都可以通过添加PaintListener来实现在部件上绘图。正如前面的例子,就是向Shell对象添加了一个PaintListener,实现了在Shell窗口上画图。 尽管理论上可以在大部分SWT部件上画图,如果只是为了显示图形,还是建议用SWT中专门提供的,用于画图的部件Canvas。 12.1.4 在Canvas上画图 Canvas也是大部分部件的基础,查看SWT的API参考,可以看到几乎大部分部件都是继承自Canvas。如果要创建新的部件,也可以考虑从Canvas上继承。下面的例子将要在一个Canvas上应用一些常用的绘图功能。首先建立一段基本代码。可以新建一个类或者在前面的代码基础上修改。 12.1.5 绘画直线 drawLine(int x1, int y1, int x2, int y2); drawPolyline(int[] pointArray); 12.1.6 Color的应用 在这个例子中,又接触到了一个新的类Color。Color是用于定义色彩的类。Color对象可以通过两种途径创建: 第一种:通过Device对象的getSystemColor()方法,获得系统中预先定义的颜色。例如上面例子中的: fore = gc.getDevice().getSystemColor(SWT.COLOR_RED); 这行代码获得的是红色(RGB:FF0000)。预定义的颜色ID在SWT有对应的静态变量。这些变量都以COLOR为前缀,例如COLOR_RED(红色)、COLOR_BLACK(黑色)、COLOR_BLUE(蓝色)。 第二种:直接构建Color对象。要获得getSystemColor(SWT.COLOR_RED)同等红色,可以用如下的方法: fore =new Color(gc.getDevice(),255,0,0); 12.1.7 前景色和背景色 在GC中,需要设置颜色的地方只有两个,一个是前景,另一个是背景。对应的两个方法分别是: void setBackground(Color color):设置背景颜色。 void setForeground(Color color):设置前景颜色。 要改变线条、字体的颜色,就要设置前景色。即用setForeground()方法。要设置填充的颜色,则用setBackground()的方法。每次改变设置,将影响后面的绘图颜色。而前面已经绘画的图形不受影响。 12.1.8 绘画矩形 矩形也是绘图中常见的形状。在GC中,绘画矩形的方法有两个,一个绘画用于直角矩形,另一个方法用于绘画圆角矩形。 GC.drawRectangle(int x, int y, int width, int height); GC.drawRoundRectangle(int x,int y,int width,int height,int arcWidth,int arcHeight); 12.1.8 绘画矩形 12.1.9 绘画圆形和椭圆 另外一种常用的图

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档