JavaFX FileChooser - PullRequest
       15

JavaFX FileChooser

56 голосов
/ 21 февраля 2012

Я столкнулся с небольшой проблемой с JavaFX.Я попытался сделать выбор файла в моем коде, где я могу указать ПАПКУ вместо файла.В настоящее время у меня нет решения для этого.Знаете ли вы обходной путь (кроме использования JFileChooser из swing)?

Большое спасибо за заранее полученные ответы

edit: я уже получил ответ, пытаясь проверить его, но забылупомянуть версию JavaFX.Это последняя стабильная версия 2.0.3, выпущенная несколько дней назад (но у первоначальных не-бета 2.0 и 2.0.1 эта проблема также была)

Ответы [ 2 ]

110 голосов
/ 22 февраля 2012

DirectoryChooser был добавлен в JavaFX как часть версии 2.1 . Использование:

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».

3 голосов
/ 05 февраля 2018

В отличие от 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);

является примером выбора файла

...