在oracle教程之后,这段代码应该创建一个文件选择器:
public File getFileAddress() {
JFileChooser chooser = new JFileChooser();
//chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = chooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
return chooser.getSelectedFile();
}
return null;
}
这应该是这样的:
然而,在mac上工作,我明白了:
当我想得到的是这个:
那么我如何通过java获得我想要的东西,因为它似乎无法正常工作。
答案 0 :(得分:6)
您在JFileChooser上使用showOpenDialog
。为了显示另存为tetbox,您可能希望使用showSaveDialog
public File getFileAddress() {
JFileChooser chooser = new JFileChooser();
//chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = chooser.showSaveDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
return chooser.getSelectedFile();
}
return null;
}
一般来说,在打开文件时,您不希望让用户创建自己的文件,因为如果您决定从中读取它,这可能会导致IOExceptions的复杂化,因此我认为它正在制作OpenDialogs上的选项。
要将JFileChooser限制为某些文件,您可以使用FileNameExtensionFilter您需要放置
chooser.setFileFilter(new FileNameExtensionFilter("RTF FIles", ".rtf"));
在创建JFileChooser之后。
要确保保存文件上的此文件类型,您必须手动修复它,稍微操作字符串操作:
String fileName = chooser.getSelectedFile().getAbsolutePath();
if(!fileName.endWith(".rtf"))fileName += ".rtf";
return new File(fileName);