是否可以使用 JFileChooser 将可用文件限制为特定目录?

Is it possible to restrict the files available to a specific directory with a JFileChooser?

是否可以创建一个 JFileChooser 对象,将可选文件限制在特定目录中?例如,我不希望用户能够导航到我设置的目录以外的任何地方。

对于上下文,我正在制作一个简单的游戏,它松散地基于 MVC 模型,并且具有命令行和图形界面。尽管 GUI 是一个 class,但我希望用户能够使用控制器的命令行界面和视图的 GUI,反之亦然。对于我已经编写的命令行版本,我为用户提供了listSavedGames()loadSavedGame(String fileName)saveGame(String fileName)的选项(仅限于特定目录中的保存游戏, 'saved games'。我要解决的问题是如何为我使用 Swing 构建的 GUI 版本执行此操作。我设想用户能够单击 'Load/Save game' 之类的东西,其中列出了已保存的游戏 (listSavedGames()) 和一个空文本框,用户可以在其中通过单击或键入来提供字符串,按钮为 'Save'、'Load' 和 'Cancel' .

我研究了 JFileChooser,虽然它会有所帮助,但它并没有真正提供列出已保存游戏的功能,而且我也无法弄清楚它如何只显示 'saved games' 目录。我看到您可以将 JFileChooser 对象设置为仅显示目录或任何特定的文件类型,但这不是我想要的。

如果答案超出了 JFileChooser 的范围并且是构建自定义组件,那么我们也将不胜感激。提前致谢。

您可以创建自定义 FileSytemView,允许您仅指定一个文件根目录。

查看 Single Root File Chooser 以获取此方法的示例。