65

我现在在使用 JavaFX 时遇到了一个小问题。我试图在我的代码中创建一个文件选择,在那里我可以指向一个文件夹而不是一个文件。目前我没有解决方案。你知道一种解决方法(除了使用 swing 中的 JFileChooser)吗?

非常感谢您提前回答

编辑:我现在已经得到了答案,试图对其进行测试,但我忘了提及 JavaFX 的版本。这是几天前发布的最新 2.0.3 稳定版(但最初的非 beta 2.0 和 2.0.1 也有这个问题)

4

2 回答 2

123

作为2.1 版本的一部分,将 DirectoryChooser 添加到 JavaFX 。用法是:

DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("JavaFX Projects");
File defaultDirectory = new File("c:/dev/javafx");
chooser.setInitialDirectory(defaultDirectory);
File selectedDirectory = chooser.showDialog(primaryStage);

问题跟踪器提到了 2.0GA 版本的解决方法:“访问私有 Oracle API Glass 方法” CommonDialogs.showFolderChooser

于 2012-02-22T01:18:23.503 回答
6

与 Swing 中 JFileChooser 用于选择文件夹和单个文件不同,在 javafx 中,有用于选择单个文件的 FileChooser 类和用于选择目录的 DirectoryChooser 类

DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setTitle("Open Resource File");
directoryChooser.getExtensionFilters().addAll(
    new ExtensionFilter("Text Files", "*.txt"),
    new ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif"),
    new ExtensionFilter("Audio Files", "*.wav", "*.mp3", "*.aac"),
    new ExtensionFilter("All Files", "*.*"));
File selectedFile = directoryChooser.showDialog(mainStage);
if (selectedFile != null) {
    mainStage.display(selectedFile);
}

是目录选择器的示例。

FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Folder");
fileChooser.showDialog(stage);

是文件选择器的一个例子

于 2018-02-05T14:47:20.963 回答