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);
пример выбора файлов