Save FileDialog in Java-strips Initiale Datei-Erweiterung

Ich bin mit java.das awt.FileDialog erstellen Sie ein Dialogfeld zum speichern der Datei. Das problem ist, dass wenn ich geben Sie einen vorgeschlagenen (Standard -) Datei, name, "FileDialog" - Streifen seine Erweiterung. Beispiel:

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());
    }
}

Ich würde erwarten, dass, wenn der FileDialog angezeigt wird, wird der Standard-Dateiname ist "Untitled.txt", aber stattdessen ist es einfach nur "Untitled". Wenn Benutzer klicken Sie auf Speichern, bekomme ich wieder einen Dateinamen ohne die Erweiterung. FileDialog tut dies auf Windows und OS X.

Ich verstehe es nicht. Warum würde FileDialog bewusst strip die Erweiterung? Gibt es eine logische Begründung dafür? Die Dokumentation nicht diskutieren. Als workaround könnte ich fügen Sie einfach die Erweiterung der string, FileDialog gibt, aber trotzdem, das scheint ein bug...

(Beachten Sie, dass ich nicht verwenden können, JFileChooser; ich brauche die nativen AWT FileDialog.)

InformationsquelleAutor vocaro | 2011-02-28
Schreibe einen Kommentar