2012-02-01 49 views

回答

3

您可以將文件篩選器添加到文件選擇器,該文件篩選器檢查文件是否爲xml文件。

當用戶選擇了一個文件,你檢查該文件的內容,如果它是無效的,你只需再次打開文件選擇器,例如,在文件有效或用戶選擇取消選項時退出的循環中。

基本上循環可能是這樣的(這是快速寫入和可能包含錯誤):

int option = CANCEL_OPTION; 
boolean fileIsValid = false; 
do { 
option = filechooser.showOpenDialog(); //or save? 
if(option == OK_OPTION) { 
    fileIsValid = isValid(filechooser.getSelectedFile()); //implementation of isValid() is left for you 
} 
} while(option == OK_OPTION && !fileIsValid); 

這個循環將執行以下操作:

  • 它打開文件選擇並獲取所選擇的選項
  • 當選擇了OK選項時,選中的文件被檢查
  • 當選擇了OK選項但所選文件無效時,執行ano迭代 - 否則結束循環(如果另一個選項,例如取消,已選擇或文件有效)
+1

+1對於文件過濾器的建議和解釋。 – 2012-02-01 14:01:31

+0

謝謝托馬斯我說得對 – waqas 2012-02-01 14:55:52

0

保持打開對話框,直到按下取消或選擇了有效文件。你必須實現isValidFile自己:

do { 
    int returnVal = chooser.showOpenDialog(parent); 
} while (returnVal != JFileChooser.CANCEL_OPTION || !isValidFile(chooser.getSelectedFile())); 
0

這個怎麼樣解決方法: 它打開文件選擇並檢查它不是一個CANCEL_OPTION。如果您檢查了正確的XML文件是成功的,那麼您的while循環就是break

JFileChooser fc = new JFileChooser(); 
    int returnVal = -1; 

    while (returnVal != JFileChooser.CANCEL_OPTION) { 
     returnVal = fc.showOpenDialog(putYourParentObjectHere); 
     if (returnVal == JFileChooser.APPROVE_OPTION) { 
      if (doYourCheckIfCorrectXMLFileWasChosenHere) { 
       // do the stuff you want 
       break; 
      } 
     } 
    }