DANCE WITH JAVA

          開發(fā)出高質(zhì)量的系統(tǒng)

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          好友之家

          最新評(píng)論

          Swt/Jface中提供的dialog

          Swt/Jface中提供了各種各樣的Dialog,一般情況下就能滿足我們的需求,現(xiàn)在把這些dialog介紹一下,
          下一篇文章再繼續(xù)將如何自定義Dialog
          一、MessageDialog
          1,MessageDialog的用法很簡單,只需要一句話.

          MessageDialog.openInfomation(shell,title,message);
          MessageDialog.openConfirm(shell,title,message);
          MessageDialog.openQuestion(shell,title,message);
          MessageDialog.openError(shell,title,message);

          2,這四個(gè)的不同之處有三點(diǎn):
                                        提示的圖標(biāo)、                  顯示的按鈕、                     返回值
          openInfomation       類似i的圖標(biāo)                     一個(gè)確定                             void
          openConfirm           問號(hào)圖標(biāo)                          確定和取消                        boolean
          openQuestion          問號(hào)圖標(biāo)                         是和否                                 boolean
          openError               一個(gè)X的圖標(biāo)                   確定                                     void

          最后說一下,MessageDialog的大小不能根據(jù)內(nèi)容自動(dòng)調(diào)整,對(duì)于少量提示信息的時(shí)候顯得大了些。
          3,InputDialog輸入的dialog
          使用方法:

          InputDialog inputDialog = new InputDialog(shell,"標(biāo)題","提示信息","默認(rèn)值",null);
          if(inputDialog.open() == InputDialog.OK){
              String value 
          = dialog.getValue();
          }
          注意最后一個(gè)參數(shù)是"驗(yàn)證器",如果想驗(yàn)證數(shù)據(jù)可以提供一個(gè)驗(yàn)證器,并在這里使用。驗(yàn)證其的寫法:
          public class MyValidator implements IInputValidaor{
              
          public String isValid(String newText){
                  
          float value = 0;
                  
          try{
                      value 
          = Float.valueOf(newText).floatValue();
                  }
          catch(NumberFormatException e){
                      
          return "錯(cuò)誤:請(qǐng)輸入數(shù)值";
                  }

                  
          if(value>0 && value<100){
                      
          return null;
                  }
          else{
                      
          return "錯(cuò)誤:請(qǐng)輸入大于0,小于100的數(shù)";
                  }

              }

          }

          然后改寫定義語句為
          InputDialog inputDialog = new InputDialog(shell,"標(biāo)題","提示信息","默認(rèn)值",new MyValidator());
          二、上邊說了MessageDialog不能自動(dòng)調(diào)整大小,那什么能自動(dòng)調(diào)整大小呢?答案是MessageBox.
          同樣繼承自Dialog.
          1,使用方法:MessageBox的使用方法稍微復(fù)雜,需要3句
          MessageBox mb = new MessageBox(shell);
          mb.setMessage(
          "提示信息");
          mb.open();
          2,MessageBox同樣可以控制圖標(biāo)和按鈕數(shù)
          是通過new的時(shí)候加入式樣來實(shí)現(xiàn)的,例如
          MessageBox mb = new MessageBox(shell,SWT._ICON_QUEST|SWT.YES|SWT.NO);

          做過SWT開發(fā)的人對(duì)這種格式應(yīng)該不陌生,到處都是。

          圖標(biāo)的種類:
          SWT.ICON_ERROR
          SWT.ICON_INFORMATION
          SWT.ICON_QUESTION
          SWT.ICON_WARNING

          按鈕的組合:
          SWT.OK
          SWT.OK|SWT.CANCEL
          SWT.YES|SWT.NO
          SWT.YES|SWT.NO|SWT.CANCEL
          SWT.RETRY|SWT.CANCEL
          SWT.ABORT|SWT.RETRY|SWT.IGNORE
          仔細(xì)看一下就是我們平時(shí)經(jīng)常看到的各種對(duì)話框。
          三、顏色選擇對(duì)話框
          不多說,使用方法幾乎在swt中遍地都是的用法。

          ColorDialog dialog = new ColorDialog(shell);
          RGB rgb 
          = dialog.open();
          if(rgb != null){
              Color color 
          = new Color(shell.getDisplay(),rgb);
          }

          注意color使用過后要dispose();
          四、字體選擇對(duì)話框
          有了上邊的一些經(jīng)驗(yàn)其實(shí)在有eclipse這種編輯器的幫助下猜著就可以寫了
          FontDialog dialog = new FontDialog(shell);
          FontData fontData 
          = dialog.open();
          if (fontDate != null){
              Font font 
          = new Font(shell.getDisplay(),fontData);
          }

          同樣在結(jié)束后font.dispose();
          五、打印對(duì)話框,同上的使用方法,同上的需要dispose
          PrintDialog dialog = new PrintDialog(shell);
          PrintData printData 
          = dialog.open();
          if (printDate != null){
              Printer printer 
          = new Printer(printerData);
          }

          六、文件選擇對(duì)話框:同上
          1,實(shí)現(xiàn)方法
          FileDialog dialog = new FileDialog(shell,SWT.OPEN);
          dialog.setFilterPath(
          "c:\windows");//設(shè)置初始路徑
          String fileName = dialog.open();//返回的全路徑(路徑+文件名)
          2,如果想選擇多個(gè)文件,加上SWT.MULTI
          FileDialog dialog = new FileDialog(shell,SWT.OPEN|SWT.MULTI);
          String fileName 
          = dialog.open();//返回最后一個(gè)選擇文件的全路徑
          String[] fileNames = dialog.getFileNames();//返回所有選擇的文件名,不包括路徑
          String path = dialog.getFilterPath();返回選擇的路徑,這個(gè)和fileNames配合可以得到所有的文件的全路徑
          3,加入filter
          FileDialog dialog = new FileDialog(shell,SWT.OPEN|SWT.NULTI);
          dialog.setFilterNames(
          new String[]{"可執(zhí)行文件(*.exe),"Excel(*.xls),"所有文件""});
          dialog.setFilterExtensions(new String[]{"*.exe","*.xls","*.*"});
          //接受方法同2中的寫法,不同就是加入了過濾器。
          4,保存對(duì)話框
          保存對(duì)話框并不提供保存功能,這個(gè)需要自己實(shí)現(xiàn),它只提供界面,并得到用戶選擇的目錄和輸入的文件名
          FileDialog dialog = new FileDialog(shell,SWT.SAVE);
          String fileName 
          = dialog.open();

          posted on 2007-08-09 09:39 dreamstone 閱讀(4300) 評(píng)論(0)  編輯  收藏 所屬分類: SWT和插件開發(fā)

          主站蜘蛛池模板: 桓仁| 日照市| 资兴市| 香港| 长治县| 元阳县| 光泽县| 延川县| 庄河市| 连江县| 永顺县| 东源县| 荔波县| 边坝县| 前郭尔| 和田市| 石家庄市| 海盐县| 古交市| 石楼县| 新闻| 咸丰县| 德清县| 昔阳县| 罗江县| 济南市| 城固县| 常熟市| 旬阳县| 陈巴尔虎旗| 元朗区| 南昌市| 南部县| 静海县| 浮梁县| 洞口县| 五华县| 湘潭市| 理塘县| 黑水县| 博罗县|