JavaFX FileChooser

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

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

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

2 ответа

Решение

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

В отличие от свинга, где 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);

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

Другие вопросы по тегам