我有过滤器
根据选择的过滤器,将扩展名附加到JFileChooser或禁止用户输入扩展名。
在他们按下保存按钮但窗口打开时没有。
我正在查看addPropertyChangeListener,但我找不到文件更改属性之外的任何内容。
编辑:我到目前为止,我可以添加过滤器,但我仍然不知道如何获取相关的过滤器。
fc.addPropertyChangeListener(JFileChooser.FILE_FILTER_CHANGED_PROPERTY, new PropertyChangeListener()
{
@Override
public void propertyChange(PropertyChangeEvent evt)
{
**MyFileFilter** filter = (**MyFileFilter**) evt.getNewValue();
String extension = filter.getExtensionByDescription(filter.getDescription());
//String extension = "ext"; // somehow here
fc.setSelectedFile(new File("." + extension));
}
});
解
创建一个扩展FilerFilter
的自定义类 public String getExtensionByDescription(String description)
{
for (int i = 0 ; i < fileList.size(); i++)
{
if (description.contains(fileList.get(i).getDescription()))
{
return "." + fileList.get(i).getExtension();
}
}
// for (FileType obj : fileList)
// {
// if (description.contains(obj.getDescription()))
// return "." + obj.getExtension();
// }
return "";
}
在一个附带问题上,有没有人知道为什么注释掉的for循环不起作用?它返回错误的扩展,但它在逻辑上与上面的循环相同:S