FORTUNE

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

          SWT Basic Controls -- Text

          Posted on 2006-03-13 16:30 fortune 閱讀(1094) 評論(1)  編輯  收藏 所屬分類: 我的學(xué)習(xí)筆記
          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  控件中的文本內(nèi)容發(fā)生了改變

          SWT.Verify

               Text is to be validated in the control  文本內(nèi)容需要驗證


          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  (通過設(shè)置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的文本內(nèi)容從start到end
          getCharCount()  返回字符的數(shù)目


          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字符是“*”,可以自己設(shè)置echo字符

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

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


           Lines and Line Height

          getLineCount() 返回行數(shù)
          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  回復(fù)  更多評論   

          2006-03-15 13:16 by 余靈
          恩``寫的太好了我草!
          主站蜘蛛池模板: 修文县| 通辽市| 安吉县| 巨野县| 四川省| 扬州市| 达尔| 游戏| 长汀县| 凤翔县| 关岭| 东至县| 红河县| 云龙县| 望谟县| 堆龙德庆县| 沾益县| 县级市| 宾阳县| 万安县| 霍林郭勒市| 五大连池市| 华安县| 龙游县| 运城市| 句容市| 加查县| 大理市| 抚顺县| 安龙县| 东乌珠穆沁旗| 馆陶县| 隆安县| 板桥市| 青田县| 渝中区| 泾阳县| 库伦旗| 庄河市| 德化县| 宁国市|