在我的程序中,我使用的是JFileChooser。用户可以使用JFileChooser选择多个文件。如果用户仅选择一个文件,则仅返回文件对象,并且可以使用fileChooser.getSelectedFile()
检索。如果用户选择了多个文件,则会返回文件[] ,并且可以使用fileChooser.getSelectedFiles()
检索。
目前我正在使用try / catch块来获取使用所述方法返回的任何类型。我觉得这样做是不好的方式。
有没有办法检查将返回什么类型的对象(例如我是否应该接收数组)?我似乎无法在API中找到这样做的方法。
答案 0 :(得分:4)
如果您允许用户选择多个文件,则应调用get.SelectedFiles()
并接收数组作为答案。
因为它是一个数组,你可以看到组件的数量,看看有多少文件被选中(一个,两个......),并且它们通过它进行交互以做你想做的任何事情。
如果您发现它只收到一个文件,请按照您的意愿行事。
答案 1 :(得分:1)
如果您想确保只能选择某些类型的文件,则应设置文件过滤器
JFileChooser fc = new JFileChooser();
fc.setFileFilter(new FileFilter()
{
public boolean accept(File file)
{
return file.isDirectory() ||
file.getName().endsWith(".abc");
}
public String getDescription()
{
return "Your files *.abc files";
}
});