我必须用FileDialog替换JFileChooser。我无法过滤掉文件。以下是代码。该过滤器在保存FileDialog中也不可见,用户也可以用不同的外部文件保存文件。该环境是Windows 10过滤器无法在FileDialog中工作
public class ABCDialog extends JDialog {
private String fileName = StringUtils.Empty;
public ABCDialog (Frame frame,String title) {
super(frame, title);
.....
}
public String getFileName() {
return fileName;
}
private String setFileName() {
FileDialog file = new FileDialog(new Frame(), "Save File...", FileDialog.SAVE);
final FilenameFilter filenameFilter = (dir, name) -> name.endsWith(".txt");
file.setFilenameFilter(filenameFilter);
file.setFile("*.txt");
file.setVisible(true);
return (file.getDirectory() + file.getFile());
}
@Override
public void setVisible(boolean visible) {
....
fileName = setFileName();
}
}
1)*“我必须用FileDialog替换JFileChooser。”* ..为什么? 2)你的问题*“如何X?”*?如果是这样,请将其添加为问题的[编辑]。如果没有,请考虑一个具体问题并执行相同的操作(编辑)。 –
正如问题所示。 filenamefilter没有应用我提供的上述示例中的过滤器。此外,我想为Windows/Mac使用标准的FileDialog。如果用户使用的是Windows,那么保存对话框应该显示在窗口中,如果用户使用的是mac,那么对话框的外观应该是基于mac的保存对话框 –
*“filenamefilter是不应用过滤器“*这是一个问题,而不是问题。 **可能由这个问题引起的问题**将沿着*“为什么它不起作用?”,*“如何使它工作?”,*“这是正确的方法还是还有更好的吗?“ - 在询问声明结尾处注意”?“。 –