Mac上的JFileChooser不返回文件

时间:2018-10-23 14:47:03

标签: java swing indexoutofboundsexception jfilechooser

我尝试使用JFileChooser获得一个File数组,该数组可以包含.png或.svg数据类型的文件。除此之外,有时窗口没有打开,我没有得到结果。如果我想使用返回的数组,则会得到一个ArrayIndexOutOfBoundsException。所需的行为是将打开JFrame,并且您可以从.svg或.png数据类型中选择一个或多个文件。选定的文件,然后应保存在阵列文件中。

public class DataExplorer {

public static File[] start() {      

    FileFilter filter = new FileNameExtensionFilter("Images ", "png", "svg");
    JFileChooser fileChooser = new JFileChooser();
    fileChooser.addChoosableFileFilter(filter);
    int returnVal = fileChooser.showOpenDialog(null);

    if (returnVal == JFileChooser.APPROVE_OPTION) {
        return fileChooser.getSelectedFiles();
    }

    else {
        System.out.println("Fail");
        return null;
    }
}
}

public static void main(String[] args) throws HeadlessException, Exception {        
    File[] file = start();
    System.out.println(file[0].getPath());

}

2 个答案:

答案 0 :(得分:1)

out <- a
for(i in seq_len(n)) out <- f1(out)
out
#[1] 1.872000e+03 6.563711e+09 1.102629e+14

是否查看return fileChooser.getSelectedFiles(); 方法的API?

它说明:

  

如果文件选择器设置为允许多个选择,则返回所选文件的列表。

我看不到将文件选择器设置为允许多选的位置。

因此,我猜如果您不允许多重选择,则数组未初始化。

您需要添加:

getSelectedFiles()

答案 1 :(得分:0)

这是设置为多选并获取文件的完整示例。

JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
chooser.showOpenDialog(frame or null);
File[] files = chooser.getSelectedFiles();