FORTUNE

          THE WAY TO THE MASTER...
          posts - 49, comments - 18, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          SWT Basic Controls -- Text

          Posted on 2006-03-13 16:30 fortune 閱讀(1096) 評論(1)  編輯  收藏 所屬分類: 我的學習筆記
          Text Hierarchy


          graphics/07inf07.gif

          Text Styles

          Style

          Description

          SWT.SINGLE

          Allow a single line to be edited  單行

          SWT.MULTI

          Allow multiple lines to be edited  多行

          SWT.READ_ONLY

          Make the control noneditable     不可編輯

          SWT.WRAP

          Allow strings to wrap instead of scrolling 自動換行

          SWT.LEFT

          Left-align the contents of the control    左對齊

          SWT.CENTER

          Center-align the contents of the control  中間對齊

          SWT.RIGHT

          Right-align the contents of the control   右對齊



          Text Events

          Event

               Description

          SWT.DefaultSelection

               Default selection occurred (user pressed <Enter>)

          SWT.Modify

               Text has changed in the control  控件中的文本內容發生了改變

          SWT.Verify

               Text is to be validated in the control  文本內容需要驗證


          text控件支持"plain"text,這意味著text中的字符必須都是同樣的字體和顏色,如果需要 更多的功能就使用org.eclipse.swt.custom.StyledText(eclipse為用戶定制的)注意StyledText不是本地(native)控件

          一共有2種類型的text控件:單行的和多行的


          Single-Line and Multiline Text Controls

          SWT.SINGLE

          Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
          text.setText("Texan");


           SWT.MULTI
          與單行的text不同它可以含有scroll bar  (通過設置SWT.H_SCROLL or SWT.V_SCROLL )

          int style =
              SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL;
          Text text = new Text(parent, style);


          String Operations

          setText(String string)

          getText()

          getText(int start, int end)  獲取text的文本內容從start到end
          getCharCount()  返回字符的數目


          Passwords and the Echo Character

          int style = SWT.SINGLE | SWT.BORDER | SWT.PASSWORD;

          Text text = new Text(parent, style);

          text.setText("fred54"); //在text上不會顯示"fred54",而是以echo字符代替

          注意在不同的平臺上echo字符是不同的,我們常見的密碼echo字符是“*”,可以自己設置echo字符

          setEchoChar(char echo)如果設置的字符是'\0'則不再隱藏字符,當前的字符被顯示

          getEchoChar() 返回setEchoChar函數設置的echo,如果未設置則返回'\0',如果使用了SWT.PASSWORD 則返回的字符不確定
          通常來說自己設置echo字符是不明智的,因為這是平臺look and feel的一部分。


           Lines and Line Height

          getLineCount() 返回行數
          getLineHeight() 返回每行高度(像素)該值與字符的高度并不相同,因為行間有空隙

          public static void main(String[] args) {

              Display display = new Display();

              Shell shell = new Shell(display);

              Text text = new Text(shell, SWT.H_SCROLL|SWT.V_SCROLL);

              int rows = 5, columns = 10;

              GC gc = new GC(text);

              FontMetrics fm = gc.getFontMetrics();

              gc.dispose();

              int height = rows * text.getLineHeight();

              int width = columns * fm.getAverageCharWidth();

              text.setSize(text.computeSize (width, height));

              shell.pack();

              shell.open();

              while (!shell.isDisposed()) {

                  if (!display.readAndDispatch()) display.sleep();

              }

              display.dispose();

            }


           Line Delimiters
          行定義符號










          評論

          # re: SWT Basic Controls -- Text  回復  更多評論   

          2006-03-15 13:16 by 余靈
          恩``寫的太好了我草!
          主站蜘蛛池模板: 讷河市| 浏阳市| 江达县| 西城区| 平武县| 潍坊市| 休宁县| 昭苏县| 泊头市| 凌云县| 满洲里市| 沙洋县| 武强县| 九江县| 花莲市| 太湖县| 漯河市| 全州县| 曲麻莱县| 尚义县| 辛集市| 玉田县| 鄂温| 合江县| 丹棱县| 卢氏县| 武乡县| 图们市| 通榆县| 托克托县| 天津市| 萨嘎县| 湖南省| 沿河| 泌阳县| 延寿县| 鹤峰县| 乌海市| 赤壁市| 祥云县| 科尔|