JFileChooser
似乎缺少一个功能:在保存文件时建议文件名(通常选择的那个,在用户开始键入时会被替换掉)。
是否有解决方法?
JFileChooser
似乎缺少一个功能:在保存文件时建议文件名(通常选择的那个,在用户开始键入时会被替换掉)。
是否有解决方法?
如果我理解您的意思正确,您需要使用setSelectedFile
方法。
JFileChooser jFileChooser = new JFileChooser();
jFileChooser.setSelectedFile(new File("fileToSave.txt"));
jFileChooser.showSaveDialog(parent);
文件无需存在。
如果您使用绝对路径传递一个文件,JFileChooser
将尝试定位到该目录(如果存在)。
如上所述,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();
}
很不幸,UI界面中没有包含setFileName
方法,因此需要动态调用它。仅在Mac上进行了测试。
dialog.getUI().setFileName( name )
但是您应该检查选择模式是FILES_ONLY
还是FILES_AND_DIRECTORIES
。如果是DIRECTORIES_ONLY
,那么setSelectedFile()
将会剥离文件名。
showSaveDialog()
中即时创建,并在显示后立即被销毁,仍然在该函数内部。 - Nyerguds