我必須用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是不應用過濾器「*這是一個問題,而不是問題。 **可能由這個問題引起的問題**將沿着*「爲什麼它不起作用?」,*「如何使它工作?」,*「這是正確的方法還是還有更好的嗎?「 - 在詢問聲明結尾處注意」?「。 –