JavaFX FileChooser

new*_*use 59 directory javafx filechooser

我现在遇到了JavaFX的一个小问题.我试图在我的代码中进行文件选择,我可以指向FOLDER而不是文件.目前我没有解决方案.你知道一个解决方法(除了从swing使用JFileChooser)吗?

非常感谢提前的答案

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

jew*_*sea 113

作为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);
Run Code Online (Sandbox Code Playgroud)

问题跟踪提到了一个变通的2.0GA版本:"访问私有API的Oracle玻璃的方法CommonDialogs.showFolderChooser".

  • "您无法将此URL视为访客.您必须登录或注册帐户." (2认同)
  • 单击[JavaFX Jira tracker](http://javafx-jira.kenai.com/)中的注册链接注册一个帐户 - 这是一个开放系统,任何人都可以注册一个帐户. (2认同)
  • 政策改变了几个月,JavaFX Jira跟踪器不再是开放系统.未来的错误报告可能会提交给:http://bugreport.java.com,它们的某些版本最终可能会出现在https://bugs.openjdk.java.net中查看 (2认同)

Emm*_*oma 5

与在Jfc中使用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);
    }
Run Code Online (Sandbox Code Playgroud)

是目录选择器的示例。

    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Open Folder");
    fileChooser.showDialog(stage);
Run Code Online (Sandbox Code Playgroud)

是文件选择器的一个示例