我有一个JFileChooser,我想在类型中提供不同的选项来更改扩展名。我想要的选项是
现在我有:
JFileChooser chooser = new WritableFileChooser(Model.getSingleton().getOptionsParam().getUserDirectory());
chooser.setFileFilter(new FileFilter()
{
@Override
public boolean accept(File file)
{
if (file.isDirectory())
{
return true;
}
else if (file.isFile())
{
String lcFileName = file.getName().toLowerCase(Locale.ROOT);
return (lcFileName.endsWith(TXT_FILE_EXTENSION) || lcFileName.endsWith(HTML_FILE_EXTENSION) || lcFileName.endsWith(XML_FILE_EXTENSION) }
return false;
}
@Override
public String getDescription()
{
return Constant.messages.getString("file.format.html");
}
Run Code Online (Sandbox Code Playgroud)
但在文件类型过滤器中只有所有文件和 HTML 可用。理想情况下,我也想摆脱所有文件选项。
此外,我有两种不同格式的 .html 要生成,是否有任何指标可以添加,以便文件选择器足够聪明,可以知道我想要哪个?
我有两种类型的for循环,fileList在这种情况下只是一个扩展的自定义类AbstractList<Object>
1)对于循环迭代索引:
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();
}
Run Code Online (Sandbox Code Playgroud)
2)对于按列表中的项目循环迭代:
public String getExtensionByDescription(String description)
{
for (FileType obj : fileList)
if (description.contains(obj.getDescription()))
return obj.getExtension();
}
Run Code Online (Sandbox Code Playgroud)
方法1)和2)逻辑上是相同还是否?因为1)返回我期望的值,但方法2)返回错误的值.谢谢您的帮助!
使用各种其他get方法实现list.
public class FileList extends AbstractList<Object>
{
private ArrayList<FileType> fileList;
public FileList()
{
fileList = new ArrayList<FileType>();
}
public void add(String search, String type, String extension, String description, String htmlicon)
{
FileType data = new FileType(fileList.size(), search, …Run Code Online (Sandbox Code Playgroud)