DANCE WITH JAVA

          開發出高質量的系統

          導航

          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          隨筆分類(277)

          隨筆檔案(238)

          閱讀排行榜

          常用鏈接

          統計

          積分與排名

          好友之家

          最新評論

          Swt/Jface中提供的dialog

          Swt/Jface中提供了各種各樣的Dialog,一般情況下就能滿足我們的需求,現在把這些dialog介紹一下,
          下一篇文章再繼續將如何自定義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,這四個的不同之處有三點:
                                        提示的圖標、                  顯示的按鈕、                     返回值
          openInfomation       類似i的圖標                     一個確定                             void
          openConfirm           問號圖標                          確定和取消                        boolean
          openQuestion          問號圖標                         是和否                                 boolean
          openError               一個X的圖標                   確定                                     void

          最后說一下,MessageDialog的大小不能根據內容自動調整,對于少量提示信息的時候顯得大了些。
          3,InputDialog輸入的dialog
          使用方法:

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

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

              }

          }

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

          做過SWT開發的人對這種格式應該不陌生,到處都是。

          圖標的種類:
          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
          仔細看一下就是我們平時經常看到的各種對話框。
          三、顏色選擇對話框
          不多說,使用方法幾乎在swt中遍地都是的用法。

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

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

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

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

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

          主站蜘蛛池模板: 鹰潭市| 泸水县| 梁河县| 古浪县| 广平县| 松溪县| 西宁市| 鱼台县| 华容县| 甘德县| 门头沟区| 喀什市| 上杭县| 永川市| 肥城市| 湄潭县| 曲阳县| 武定县| 宝丰县| 屏东市| 东乡族自治县| 江北区| 乌审旗| 麻栗坡县| 河源市| 新河县| 车致| 浏阳市| 靖江市| 巴楚县| 上虞市| 沧源| 广德县| 曲麻莱县| 通州市| 贵港市| 富源县| 贵州省| 麻江县| 南陵县| 中江县|