小编voc*_*aro的帖子

在Java中保存FileDialog剥离初始文件扩展名

我正在使用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.)

java filedialog awt

8
推荐指数
1
解决办法
1万
查看次数

使用复制构造函数而不是Object.clone进行深度复制的正确方法

我有一些代码使用Object.clone执行深层复制,但我正在尝试使用更"可接受"的复制构造函数重写它.下面是我正在尝试做的两个简单示例,第一个使用克隆,第二个使用复制构造函数.

使用克隆的深层复制

 import java.util.*;

 abstract class Person implements Cloneable {
     String name;
     public Object clone() throws CloneNotSupportedException {
         return super.clone();
     }
 }

 class Teacher extends Person implements Cloneable {
     int courses;
     public String toString() { return name + ": courses=" + courses; }
 }

 class Student extends Person implements Cloneable {
     double gpa;
     public String toString() { return name + ": gpa=" + gpa; }
 }

 public class DeepCopy_Clone {
     private static List<Person> deepCopy(List<Person> people) throws CloneNotSupportedException {
         List<Person> copy …
Run Code Online (Sandbox Code Playgroud)

java clone deep-copy copy-constructor cloneable

7
推荐指数
1
解决办法
2万
查看次数

内置函数isequal,isnotequal,isgreater等有什么意义?

在OpenCL中,内置函数isequal,isnotequal,isgreater等有什么意义?为什么不==,!=,>等?语义是否不同?操作员是否有功能不受限制的限制?规格尚不清楚......

opencl

6
推荐指数
1
解决办法
509
查看次数

标签 统计

java ×2

awt ×1

clone ×1

cloneable ×1

copy-constructor ×1

deep-copy ×1

filedialog ×1

opencl ×1