快速业务通道

SWT全接触 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
左上角位置为5.5的圆矩形,右边的图形是放大后的效果:

GC.drawOval(int x, int y, int width, int height);一个椭圆是由其相对应的矩形的左上角的位置 (x,y)来确定绘制位置的,其宽和高即为对应矩形的宽和高。对于圆形来说,只需要另宽和高相等即可 。

SWT全接触(9)

时间:2011-11-09 IBM 薛笛

GC.drawArc(int x, int y, int width, int height, int startAngle, int endAngle);曲线的绘制 也是与一个相应的矩形有关,即其左上角的位置与宽和高都是相应矩形的属性。StartAntle是从横向的X 开始计算的,所以0度指向的是东而不是北。曲线的绘制是从StartAngle到endAngle以逆时针方向执行。 gc.drawArc(5,5,90,45,90,200);所绘制的图形如下:

GC.setLineStyle(int style);可以设置所绘制曲线的样式,下面列出了一些曲线样式常量(在 org.eclipse.swt.SWT中定义)和与之对应的曲线的图像:

GC.setLineWidth(int width);可以用于指定所要绘制的曲线的宽度。缺省情况下的曲线宽度为 1个像素。

由于直线的样式和宽度挥作用到所有的绘图操作上,所以我们可以作出如点矩形或粗线椭圆这 样的图形:

3.7 绘制文本

文本可以被绘制在一个GC上,字形是用GC的前景色和字体来绘制的,并且 它所占用的区域是用GC背景色绘制的。要绘制文本,你需要定义要绘制文本的左上角,宽度和高度。有两 组方法可以用来绘制文本,第一组方法的名字里都带有一个Text,并将会处理直线定界符和制表符。第二 组API方法集的名字里都带有String,它们没有制表符或回车的处理,并主要用于控制像Eclipse的Java编 辑器StyledText这样复杂的Control。

GC.drawText(String text, int x, int y);  Font font = new Font(display,"Arial",14,SWT.BOLD | SWT.ITALIC);  // ...  gc.drawText("Hello World",5,5);  gc.setForeground(display.getSystemColor (SWT.COLOR_BLUE));  gc.setFont(font);  gc.drawText ("Hello\tThere\nWide\tWorld",5,25);  // ...  font.dispose(); 

SWT全接触(10)

时间:2011-11-09 IBM 薛笛

drawText API将控制字符\t处理为制表符,将\n处理为回车符。

GC.drawString(String text, int x, int y); Font font = new Font(display,"Arial",14,SWT.BOLD | SWT.ITALIC); // ... gc.drawString("Hello World",5,5); gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE)); gc.setFont(font); gc.drawString("Hello\tThere\nWide\tWorld",5,25); // ... font.dispose() 

当使用drawString时,制表符和回车符将不会被处理。

在一个GC上绘制字符的时候,一个字符串所占用的大小取决于它的内容以及GC的字体。想要确定一个 字符串在被绘制之后所占用的区域可以使用方法:GC.stringExtent(String text), 或 GC.textExtent (String text)。这两个方法都返回一个Point类,这个Point的X和Y是渲染参数字符串所需要的宽和高。

3.8 图形填充

直线是用GC前景色绘制的,而图形的填充用的是GC的背景色。

GC.fillPolygon(int[]); gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE)); gc.fillPolygon(new int[] { 25,5,45,45,5,45 }) GC.fillRectangle(int x, int y, int width, int height); gc.fillRectangle(5,5,90,45);

SWT全接触(11)

时间:2011-11-09 IBM 薛笛

需要注意的是,当一个矩形被填充的时候,右面和下面的边缘是不被包括在内的。

GC.fillRoundedRectangle(int x, int y, int width, int height, int arcWidth,  int arcHeight); gc.fillRoundRecta

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号