如何将 JFileChooser 限制为 select 个特定数量的文件?
How to constrain JFileChooser to select particular number files?
使用 JFileChooser
,我已通过 setMultiSelectionEnabled(true)
启用多 selection 模式,但我如何设置限制以便用户只能 select a特定数量的文本(或其他)文件?
public File[] fileSelect() {
fileChooser = new JFileChooser();
fileNameExtFilter = new FileNameExtensionFilter("Text File","txt");
fileChooser.setCurrentDirectory(new java.io.File("."));
fileChooser.setDialogTitle("Open Question Set");
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fileChooser.setAcceptAllFileFilterUsed(false);
fileChooser.setFileFilter(fileNameExtFilter);
fileChooser.setMultiSelectionEnabled(true);
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
return fileChooser.getSelectedFiles();
else
return null;
}
有几种可能的方法:
通过子classing BasicFileChooserUI
创建自定义 FileChooserUI
并在嵌套 class [=12= 的实现中限制选择].
创建自定义文件浏览器,如图here,并在相关监听器中限制选择
使用现有的FileChooser
并在选择超过三个时显示对话框;考虑使用 JTable
包含复选框,如图 here.
使用单独的选择器面板,如图所示 here 通过 createPathPanel()
为两个文件。
最佳选择和具体细节将取决于用例。
使用 JFileChooser
,我已通过 setMultiSelectionEnabled(true)
启用多 selection 模式,但我如何设置限制以便用户只能 select a特定数量的文本(或其他)文件?
public File[] fileSelect() {
fileChooser = new JFileChooser();
fileNameExtFilter = new FileNameExtensionFilter("Text File","txt");
fileChooser.setCurrentDirectory(new java.io.File("."));
fileChooser.setDialogTitle("Open Question Set");
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fileChooser.setAcceptAllFileFilterUsed(false);
fileChooser.setFileFilter(fileNameExtFilter);
fileChooser.setMultiSelectionEnabled(true);
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
return fileChooser.getSelectedFiles();
else
return null;
}
有几种可能的方法:
通过子classing
BasicFileChooserUI
创建自定义FileChooserUI
并在嵌套 class [=12= 的实现中限制选择].创建自定义文件浏览器,如图here,并在相关监听器中限制选择
使用现有的
FileChooser
并在选择超过三个时显示对话框;考虑使用JTable
包含复选框,如图 here.使用单独的选择器面板,如图所示 here 通过
createPathPanel()
为两个文件。
最佳选择和具体细节将取决于用例。