Java JFileChooser.showSaveDialog(…)-如何设置建议的文件名
Java JFileChooser.showSaveDialog(…)-如何设置建议的文件名,java,swing,jfilechooser,Java,Swing,Jfilechooser,JFileChooser似乎缺少一个功能:在保存文件时建议文件名的一种方法(通常会选中此项,以便在用户开始键入时将其替换) 有办法解决这个问题吗?如果我理解正确,您需要使用setSelectedFile方法 JFileChooser jFileChooser = new JFileChooser(); jFileChooser.setSelectedFile(new File("fileToSave.txt")); jFileChooser.showSaveDialog(parent); 该文
JFileChooser
似乎缺少一个功能:在保存文件时建议文件名的一种方法(通常会选中此项,以便在用户开始键入时将其替换)
有办法解决这个问题吗?如果我理解正确,您需要使用
setSelectedFile
方法
JFileChooser jFileChooser = new JFileChooser();
jFileChooser.setSelectedFile(new File("fileToSave.txt"));
jFileChooser.showSaveDialog(parent);
该文件不需要存在
编辑:如果您传递一个具有绝对路径的文件,
JFileChooser
将尝试将其自身定位到该目录中(如果存在)。如果这不起作用,下面是一个解决方法:
dialog.getUI().setFileName( name )
但是您应该检查选择模式是仅为
文件
还是文件和目录
。如果它是目录\u仅
,则setSelectedFile()
将删除文件名。setSelectedFile不能与上述目录一起使用,需要一种解决方案
try {
FileChooserUI fcUi = fileChooser.getUI();
fcUi.setSelectedFile(defaultDir);
Class<? extends FileChooserUI> fcClass = fcUi.getClass();
Method setFileName = fcClass.getMethod("setFileName", String.class);
setFileName.invoke(fcUi, defaultDir.getName());
} catch (Exception e) {
e.printStackTrace();
}
试试看{
FileChooserUI fcUi=fileChooser.getUI();
fcUi.setSelectedFile(defaultDir);
CLASS您将如何访问该对话框?它是私有的,在showsavedilog()
中当场创建,并在显示后立即释放,仍然在该函数中。在Mac 10.3.4/Java 1.4.2中为我工作