我尝试使用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());
}
答案 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();