3

按照 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得到我想要的东西,因为它似乎不起作用。

4

1 回答 1

6

showOpenDialog在 JFileChooser 上使用。为了显示另存为 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);
于 2013-05-01T00:32:24.697 回答