voc*_*aro 8 java filedialog awt
我正在使用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());
}
}
Run Code Online (Sandbox Code Playgroud)
我希望当FileDialog出现时,默认文件名是"Untitled.txt",而只是"Untitled".当用户单击"保存"时,我会返回没有扩展名的文件名.FileDialog在Windows和OS X上执行此操作.
我不明白.为什么FileDialog故意剥夺扩展名?这有什么合理的理由吗?文档没有讨论它.作为一种解决方法,我可以简单地将扩展名添加到FileDialog返回的字符串中,但是,这似乎是一个错误......
(请注意,我不能使用JFileChooser;我需要本机AWT FileDialog.)
在使用 Sun Java 1.5 和 1.6 的 Windows 7 上,这种情况不会发生。
我得到的行为稍微取决于 Windows 资源管理器中“隐藏已知文件类型的扩展名”的设置。如果打开了该选项,那么我不会像您所期望的那样在文件对话框中看到扩展名,但它确实会返回完整的文件名。
编辑:意识到我对 AWT 和本机小部件的看法是错误的——混淆了 AWT 和 Swing。
| 归档时间: |
|
| 查看次数: |
10421 次 |
| 最近记录: |