JavaFX FileChooser

J’ai rencontré un petit problème avec JavaFX. J’ai essayé de faire un filechoosing dans mon code où je peux pointer sur un dossier au lieu d’un fichier. Actuellement, je n’ai pas de solution pour cela. Connaissez-vous une solution de contournement (sauf en utilisant JFileChooser à partir de swing)?

Merci beaucoup pour les réponses à l’avance

edit: J’ai déjà une réponse en essayant de la tester, mais j’ai oublié de mentionner la version de JavaFX. Il s’agit de la dernière version 2.0.3 stable, publiée il ya quelques jours (mais les versions 2.0 et 2.0.1 non bêta initiales avaient également ce problème)

Un DirectoryChooser a été ajouté à JavaFX dans le cadre de la version 2.1 . Utilisation est:

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

Le programme de suivi des problèmes mentionne une solution de rechange pour la version 2.0GA: “accéder à la méthode privée Oracle API Glass CommonDialogs.showFolderChooser “.

Contrairement à swing où JFileChooser était utilisé pour sélectionner des dossiers et des fichiers individuels, dans javafx, il existe une classe FileChooser qui est utilisée pour choisir des fichiers individuels et une classe DirectoryChooser pour sélectionner un répertoire.

  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); } 

est un exemple de sélecteur de répertoire.

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

est un exemple de sélecteur de fichier