Сохранить FileDialog в Java удаляет исходное расширение файла

Я использую java.awt.FileDialog для создания диалогового окна для сохранения файла. Проблема в том, что когда я указываю предлагаемое (по умолчанию) имя файла, FileDialog удаляет его расширение. Пример:

import java.awt.*;
import java.io.*;

public class SaveFile {
    public static void main(String[] args) {
        FileDialog fileDialog = new FileDialog(new Frame(), "Save", FileDialog.SAVE);
        fileDialog.setFilenameFilter(new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return name.endsWith(".txt");
            }
        });
        fileDialog.setFile("Untitled.txt");
        fileDialog.setVisible(true);
        System.out.println("File: " + fileDialog.getFile());
    }
}

Я ожидал, что когда появится FileDialog, имя файла по умолчанию будет «Untitled.txt», но вместо этого это будет просто «Untitled». Когда пользователи нажимают «Сохранить», я получаю имя файла без расширения. FileDialog делает это как в Windows, так и в OS X.

Я не понимаю. Почему FileDialog намеренно удаляет расширение? Есть ли для этого какая-то логическая причина? В документации это не обсуждается. В качестве обходного пути я мог бы просто добавить расширение к строке, возвращаемой FileDialog, но все же это похоже на ошибку ...

(Обратите внимание, что я не могу использовать JFileChooser; мне нужен собственный AWT FileDialog. )

8
задан vocaro 28 February 2011 в 16:18
поделиться