隨筆 - 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 閱讀(6267) 評論(1)  編輯  收藏 所屬分類: j2se開發

          評論

          # dd  回復  更多評論   

          adsfaa
          2014-11-04 15:45 | ddddddddddddd

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 竹北市| 公主岭市| 察雅县| 斗六市| 施甸县| 保德县| 宣威市| 鄂托克旗| 定陶县| 双柏县| 武定县| 台东市| 长白| 中超| 班戈县| 桂平市| 谷城县| 上杭县| 敖汉旗| 旬阳县| 滕州市| 广平县| 瓮安县| 微山县| 延边| 惠东县| 新巴尔虎左旗| 郓城县| 夹江县| 平谷区| 濮阳市| 白沙| 平阳县| 穆棱市| 鄂州市| 鹿邑县| 石泉县| 肃北| 顺义区| 香河县| 霍州市|