【发布时间】:2018-10-23 14:47:02
【问题描述】:
我尝试使用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());
}
【问题讨论】:
-
发布正确的minimal reproducible example 来说明问题。您不会显示如何调用该方法或如何显示该方法的结果。
-
文件[] 文件 = DataExplorer.start(); System.out.println(file[0].getPath());
-
1) 请不要将代码放在不易阅读的cmets中。而是edit 添加代码的问题。 2) 请务必阅读 @camickr 链接的文档,因为在该问题中添加单行代码仍不能使其成为 MCVE。 3) 确保在 EDT 上启动 GUI。 4) 投票结束。 (请尽快使用 MCVE 进行编辑。)
-
解决方案很简单,我只是在等你发布一个合适的“MCVE”。我们应该能够复制/粘贴/编译和测试您发布的内容。所以你需要一个 main() 方法。应该为每个问题创建一个“MCVE”。
-
现在这是一个“MCVE”。我知道我很挑剔,但是当您提出更复杂的问题时,“MCVE”会迫使您简化问题,并且大多数情况下您甚至会在发布之前找到答案。如果没有,那么您只需发布简单的代码,以便我们进行测试。
标签: java swing indexoutofboundsexception jfilechooser