随笔 - 0, 文章 - 5, 评论 - 1, 引用 - 0
数据加载中……

玩转SWT的StyledText

  在大多数编程工具中都会有这样的功能,输入了在工具中特定的关键字后,会以其它颜色或加粗显示。这个功能对将枯燥的程序代码变的清晰易读。

  Eclipse中当然也包含这个功能。我们知道,Eclipse是以SWT为基础建立起来的,那么我们是不是也可以利用SWT来实现这个功能呢?

  StyledText--这是SWT包中的一个基础组件,就如同它的名字定义的那样,可以在它之以前显示各种样式的字体。如下代码:

 1 //  创建一个带滚动条的文本框
 2 StyledText text  =  
 3      new  StyledText(
 4         shell,
 5         SWT.WRAP
 6          |  SWT.BORDER
 7          |  SWT.H_SCROLL
 8          |  SWT.V_SCROLL);
 9
10 //  设置要显示的文字
11 text.setText( " 欢迎光临六月天 " );
12
13 //  加粗显示“六月天”三个字
14 this .txtContext.setStyleRange(getHighlightStyle( 4 " 六月天 " .length()));
15
16 /**
17 * 取加粗文字对象
18 @param  startOffset
19 @param  length
20 @return  StyleRange
21 */

22 private  StyleRange getHighlightStyle( int  startOffset,  int  length)  {
23     StyleRange styleRange  =   new  StyleRange();
24     styleRange.start  =  startOffset;
25     styleRange.length  =  length;
26     
27     styleRange.fontStyle  =  SWT.BOLD;
28     
29      return  styleRange;
30 }

31
32 当然,我们也可以象Eclipse中那样,改变文字颜色:
33
34  程序代码
35 //  将“六月天”三个字改为蓝色显示
36 this .txtContext.setStyleRange(
37     getColorStyle( 4 " 六月天 " .length(), 
38      this .shell.getDisplay().getSystemColor(SWT.COLOR_BLUE)));
39
40 /**
41 * 取文字颜色对象
42 @param  startOffset
43 @param  length
44 @param  color
45 @return
46 */

47 private  StyleRange getColorStyle( int  startOffset,  int  length, Color color)  {
48     StyleRange styleRange  =   new  StyleRange(startOffset, length, color,  null );
49     styleRange.fontStyle  =  SWT.BOLD;
50      return  styleRange;
51 }

52

  除此之外,我们还可以改变文字的背景色,及加下划线,删除线等。

  虽然StyledText为我们提供了如此多的文字风格,但总觉得还缺少对图像的支持。不过听说,Eclipse3.2版的SWT已经提供了对图像的支持。改天试试。

posted on 2006-07-28 15:42 hiswing 阅读(6156) 评论(1)  编辑  收藏 所属分类: j2se开发

评论

# dd  回复  更多评论   

adsfaa
2014-11-04 15:45 | ddddddddddddd

只有注册用户登录后才能发表评论。


网站导航: