如何约束JFileChooser来选择特定的数字文件?

时间:2015-09-11 12:33:07

标签: java swing jfilechooser

使用JFileChooser,我已通过setMultiSelectionEnabled(true)启用了多选模式,但如何设置限制以便用户只能选择特定数量的文本(或其他)文件?< / p>

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;
}

1 个答案:

答案 0 :(得分:3)

有几种方法可以:

  • 通过继承BasicFileChooserUI创建自定义FileChooserUI,并限制嵌套类SelectionListener的实现中的选择。

  • 创建自定义文件浏览器,如here所示,并限制相关监听器中的选择。

  • 使用现有的FileChooser并在选择超过三个时显示一个对话框;考虑使用JTable包含的复选框here

  • 使用单独的选择器面板,如here所示,通过createPathPanel()获取两个文件。

image

最佳选择和具体细节取决于用例。