Java 如果打开的文件不是XML,请再次显示OpenDialog()
我使用Java 如果打开的文件不是XML,请再次显示OpenDialog(),java,swing,user-interface,jfilechooser,Java,Swing,User Interface,Jfilechooser,我使用JFileChooser制作了一个只打开XML文件的简单应用程序。在打开正确的XML文件或按“取消”按钮之前,如何反复显示“打开”对话框?您可以向文件选择器添加一个文件过滤器,以检查文件是否为XML文件 当用户选择一个文件时,您检查该文件的内容,如果该文件无效,您只需再次打开文件选择器,例如,在文件有效或用户选择取消选项时退出的循环中 基本上,循环可能如下所示(编写速度很快,可能包含错误): 此循环执行以下操作: 它打开文件选择器并获取所选选项 选择“确定”选项后,选中所选文件 当选择了
JFileChooser
制作了一个只打开XML文件的简单应用程序。在打开正确的XML文件或按“取消”按钮之前,如何反复显示“打开”对话框?您可以向文件选择器添加一个文件过滤器,以检查文件是否为XML文件
当用户选择一个文件时,您检查该文件的内容,如果该文件无效,您只需再次打开文件选择器,例如,在文件有效或用户选择取消选项时退出的循环中
基本上,循环可能如下所示(编写速度很快,可能包含错误):
此循环执行以下操作:
- 它打开文件选择器并获取所选选项
- 选择“确定”选项后,选中所选文件
- 当选择了“确定”选项但所选文件无效时,请执行另一次迭代-否则结束循环(如果选择了另一个选项,例如“取消”,或文件有效)
- 它打开文件选择器并获取所选选项
- 选择“确定”选项后,选中所选文件
- 当选择了“确定”选项但所选文件无效时,请执行另一次迭代-否则结束循环(如果选择了另一个选项,例如“取消”,或文件有效)
do {
int returnVal = chooser.showOpenDialog(parent);
} while (returnVal != JFileChooser.CANCEL_OPTION || !isValidFile(chooser.getSelectedFile()));
继续打开对话框,直到按下“取消”或选择有效文件。您必须自己实施isValidFile:
do {
int returnVal = chooser.showOpenDialog(parent);
} while (returnVal != JFileChooser.CANCEL_OPTION || !isValidFile(chooser.getSelectedFile()));
这个解决方案怎么样:
它打开filechooser并检查它是否不是取消选项。如果成功检查了正确的XML文件,则中断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;
}
}
}
这个解决方案怎么样:
它打开filechooser并检查它是否不是取消选项。如果成功检查了正确的XML文件,则中断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;
}
}
}