JFileChooser的存檔是否而覆蓋的設定.老手勿笑 |
|
neoart
版主 發表:22 回覆:582 積分:425 註冊:2003-05-09 發送簡訊給我 |
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 發送簡訊給我 |
想不到這個功能並沒有想像中簡單阿?
真是嘆為觀止
謝謝分享咧
引言: 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 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |