过滤器无法在FileDialog中运行

时间:2016-11-21 05:35:05

标签: java swing awt filedialog filefilter

我必须用FileDialog替换JFileChooser。我无法过滤掉文件。以下是代码。过滤器在Save FileDialog上也不可见,用户也可以使用不同的ext保存文件文件。环境是Windows 10

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 个答案:

答案 0 :(得分:1)

根据FileDialog#setFilenameFilter JavaDoc:

  

在Sun的Microsoft Windows参考实现中,文件名过滤器不起作用。

所以这是预期的行为。