在大多数编程工具中都会有这样的功能,输入了在工具中特定的关键字后,会以其它颜色或加粗显示。这个功能对将枯燥的程序代码变的清晰易读。
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已经提供了对图像的支持。改天试试。