玩轉(zhuǎn)SWT的StyledText
在大多數(shù)編程工具中都會(huì)有這樣的功能,輸入了在工具中特定的關(guān)鍵字后,會(huì)以其它顏色或加粗顯示。這個(gè)功能對(duì)將枯燥的程序代碼變的清晰易讀。
Eclipse中當(dāng)然也包含這個(gè)功能。我們知道,Eclipse是以SWT為基礎(chǔ)建立起來(lái)的,那么我們是不是也可以利用SWT來(lái)實(shí)現(xiàn)這個(gè)功能呢?
StyledText--這是SWT包中的一個(gè)基礎(chǔ)組件,就如同它的名字定義的那樣,可以在它之以前顯示各種樣式的字體。如下代碼:
?1
//
?創(chuàng)建一個(gè)帶滾動(dòng)條的文本框
?2
StyledText?text?
=
?
?3
????
new
?StyledText(
?4
????????shell,
?5
????????SWT.WRAP
?6
????????
|
?SWT.BORDER
?7
????????
|
?SWT.H_SCROLL
?8
????????
|
?SWT.V_SCROLL);
?9
10
//
?設(shè)置要顯示的文字
11
text.setText(
"
歡迎光臨六月天
"
);
12
13
//
?加粗顯示“六月天”三個(gè)字
14
this
.txtContext.setStyleRange(getHighlightStyle(
4
,?
"
六月天
"
.length()));
15
16
/**?*/
/**
17
*?取加粗文字對(duì)象
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
當(dāng)然,我們也可以象Eclipse中那樣,改變文字顏色:
33
34
?程序代碼
35
//
?將“六月天”三個(gè)字改為藍(lán)色顯示
36
this
.txtContext.setStyleRange(
37
????getColorStyle(
4
,?
"
六月天
"
.length(),?
38
????
this
.shell.getDisplay().getSystemColor(SWT.COLOR_BLUE)));
39
40
/**?*/
/**
41
*?取文字顏色對(duì)象
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

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12

13

14

15

16


17

18

19

20

21

22



23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40


41

42

43

44

45

46

47



48

49

50

51

52

除此之外,我們還可以改變文字的背景色,及加下劃線,刪除線等。
雖然StyledText為我們提供了如此多的文字風(fēng)格,但總覺(jué)得還缺少對(duì)圖像的支持。不過(guò)聽(tīng)說(shuō),Eclipse3.2版的SWT已經(jīng)提供了對(duì)圖像的支持。改天試試。
posted on 2006-07-28 15:42 hiswing 閱讀(6251) 評(píng)論(1) 編輯 收藏 所屬分類: j2se開(kāi)發(fā)