[英]showOpenDialog() again if opened file is not XML
我制作了一個簡單的應用程序,使用JFileChooser
僅打開XML文件。 如何反復顯示打開的對話框,直到打開正確的XML文件或按“取消”按鈕?
您可以將文件過濾器添加到文件選擇器,以檢查文件是否為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);
此循環執行以下操作:
繼續打開對話框,直到按“取消”或選擇有效文件為止。 您必須自己實現isValidFile:
do {
int returnVal = chooser.showOpenDialog(parent);
} while (returnVal != JFileChooser.CANCEL_OPTION || !isValidFile(chooser.getSelectedFile()));
該解決方案如何解決:它打開filechooser並檢查它是否不是CANCEL_OPTION。 如果對正確的XML文件的檢查成功,則break
while循環。
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;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.