線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1971
推到 Plurk!
推到 Facebook!

JFileChooser的存檔是否而覆蓋的設定.老手勿笑

 
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-18 11:43:07 IP:61.64.xxx.xxx 未訂閱
JFileChooser的設定可以很豐富,有的會因為不同的look&feel的不同而有不同的呈現,有的可以加入預覽圖區,有的在windows & Linux下又是別有一番風味. 這不是今天小弟所要分享的重點.重點是存檔是否覆蓋的設定,這點.有不少人找遍不少站台.幾近"上窮碧落下黃泉,四處茫茫皆不見"的地步了(就一個受害者而言,我有必要站出來說兩句了). 經過小弟實務經驗上,有兩種方式可以設定.一是在他的"save as"按鍵加listener,這種方法,隨著jdk的改變,已經有點不實用了. 另一種方法,是直接繼承JFileChooser,並修改他的的"approveSelection"方法. 就樣是目前小弟覺得比較OO的寫法,同時,也是jdk1.4.x可以run的用法. 範例如下: ================================================================================
  public class MyFileChooser extends JFileChooser{
          public MyFileChooser(){
              super();
          }              public MyFileChooser(String baseDir){
              super(baseDir);
          }              public void approveSelection(){
              if(!validateFile(this.getSelectedFile()))
              {
                  //show some error message
                  return;
              }
              super.approveSelection();
          }
          private boolean validateFile(File file){
              //do your validation here
              if(file.exists()){
                  if (JOptionPane.showConfirmDialog(
                    null, "File exists,overwrite?",
                    "Overwrite File?",
                    JOptionPane.YES_NO_OPTION) ==JOptionPane.YES_OPTION)
                    return true;
                  return false;
              }else return true;
          }
      }
========================================================================================== 小小心得.不值一哂. 發表人 - neoart 於 2004/05/18 11:46:56
pipp
一般會員


發表:2
回覆:21
積分:9
註冊:2003-10-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-20 09:47:18 IP:61.220.xxx.xxx 未訂閱
想不到這個功能並沒有想像中簡單阿? 真是嘆為觀止 謝謝分享咧     
引言: JFileChooser的設定可以很豐富,有的會因為不同的look&feel的不同而有不同的呈現,有的可以加入預覽圖區,有的在windows & Linux下又是別有一番風味. 這不是今天小弟所要分享的重點.重點是存檔是否覆蓋的設定,這點.有不少人找遍不少站台.幾近"上窮碧落下黃泉,四處茫茫皆不見"的地步了(就一個受害者而言,我有必要站出來說兩句了). 經過小弟實務經驗上,有兩種方式可以設定.一是在他的"save as"按鍵加listener,這種方法,隨著jdk的改變,已經有點不實用了. 另一種方法,是直接繼承JFileChooser,並修改他的的"approveSelection"方法. 就樣是目前小弟覺得比較OO的寫法,同時,也是jdk1.4.x可以run的用法. 範例如下: ================================================================================
  public class MyFileChooser extends JFileChooser{
          public MyFileChooser(){
              super();
          }              public MyFileChooser(String baseDir){
              super(baseDir);
          }              public void approveSelection(){
              if(!validateFile(this.getSelectedFile()))
              {
                  //show some error message
                  return;
              }
              super.approveSelection();
          }
          private boolean validateFile(File file){
              //do your validation here
              if(file.exists()){
                  if (JOptionPane.showConfirmDialog(
                    null, "File exists,overwrite?",
                    "Overwrite File?",
                    JOptionPane.YES_NO_OPTION) ==JOptionPane.YES_OPTION)
                    return true;
                  return false;
              }else return true;
          }
      }
========================================================================================== 小小心得.不值一哂. 發表人 - neoart 於 2004/05/18 11:46:56
< >< >
系統時間:2024-05-09 3:29:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!