Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何约束JFileChooser选择特定数量的文件?_Java_Swing_Jfilechooser - Fatal编程技术网

Java 如何约束JFileChooser选择特定数量的文件?

Java 如何约束JFileChooser选择特定数量的文件?,java,swing,jfilechooser,Java,Swing,Jfilechooser,使用JFileChooser,我通过setMultiSelectionEnabledtrue启用了multi-selection模式,但如何设置限制,以便用户只能选择特定数量的文本或其他文件 public File[] fileSelect() { fileChooser = new JFileChooser(); fileNameExtFilter = new FileNameExtensionFilter("Text File","txt"); fileChooser

使用JFileChooser,我通过setMultiSelectionEnabledtrue启用了multi-selection模式,但如何设置限制,以便用户只能选择特定数量的文本或其他文件

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

有几种可能的方法:

通过子类化BasicFileChooserUI创建自定义,并限制嵌套类SelectionListener实现中的选择

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

使用现有文件选择器,并在选择超过三个时显示对话框;考虑使用包含表的复选框,如图所示。

使用单独的选择器面板,如通过createPathPanel显示的两个文件所示


最佳选择和确切细节将取决于用例。

。但如何对其进行限制,以便用户只能选择三个文件。为什么只有3个?如果是这样的话,我会为用户提供一个单一的选择文件选择器,3次。我必须将这些文件的路径发送到其他类的构造函数,所以我猜不能进行循环。我的情况下只有3次。我同意你的意见,我应该问一下。非常感谢。我发现1、3和4适合我的情况。